본문 바로가기

728x90

분류 전체보기

[백준알고리즘] 10814번: 나이순 정렬 -C++ [백준알고리즘] 10814번: 나이순 정렬 -C++ 10814번: 나이순 정렬 (acmicpc.net) 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net '1181번 단어 정렬'과 마찬가지로 두 가지 값을 동시에 비교해야 한다. 1181번 문제에 대한 풀이는 아래 링크에 있다. [백준알고리즘] 1181번: 단어 정렬 -C++ (tistory.com) [백준알고리즘] 1181번: 단어 정렬 -C++ [백준알고리즘] 1181번: 단어 정렬 -C++ 1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫.. 더보기
[백준알고리즘] 1181번: 단어 정렬 -C++ [백준알고리즘] 1181번: 단어 정렬 -C++ 1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 입력으로 \(n\)개의 단어들이 들어올 때 세 가지 조건에 맞춰서 입력된 단어들을 출력하면 된다. 단어들 중 단어의 길이가 짧은 것부터 긴 것까지, 단어의 길이의 오름차순 단어의 길이가 같다면, 사전 순 (단어의 오름차순) 중복된 입력의 단어는 삭제 메모리와 시간 조건이 넉넉하니 정렬이야 sort를 사용해서 해주었다. 여기서 직접 비교 함수를 만들어서 넣어.. 더보기
[백준알고리즘] 11650번: 좌표 정렬하기 -C++ [백준알고리즘] 11650번: 좌표 정렬하기 -C++ 11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 예전에 파이썬으로 푼 코드가 있다. 아래의 파이썬으로 푼 내용이 포스팅되어 있다. 이 문제 외에도 11651번 문제도 함께 있다. [백준알고리즘] 11650, 11651번: 좌표 정렬하기, 좌표 정렬하기 2 -Python (tistory.com) [백준알고리즘] 11650, 11651번: 좌표 정렬하기, .. 더보기
[백준알고리즘] 2108번: 통계학 -C++ [백준알고리즘] 2108번: 통계학 -C++ 2108번: 통계학 (acmicpc.net) 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 그렇게 어렵게 풀 문제는 아니다. 실제로 구하라고 하는 값들을 계산하면 된다. 산술평균 산술평균을 구하기 위해서 입력 들어오는 모든 값을 우선 더해주었다. 이 더한 값을 입력이 들어오는 개수인 \(n\)으로 나눠주면 된다. 여기서 입력 값들의 합은 int의 범위를 넘어서기 때문에 int64_t (double)로 설정해주어서 오버플로우를 방지했다. 중앙값 중앙값을 구해주기 위해서는 우선 모든 수를 입력받은 뒤에.. 더보기
[백준알고리즘] 10989번: 수 정렬하기 3 -C++ [백준알고리즘] 10989번: 수 정렬하기 3 -C++ 10989번: 수 정렬하기 3 (acmicpc.net) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 이번에는 지난 '수 정렬하기 2'에서 겪었던 시간 초과 잔혹사를 보내지 않기 위해서 처음부터 ostringstream을 사용해서 문제를 풀었다. 그런데 예상치 못한 문제들을 겪었다. 아래는 그때 고난을 겪었던 '수 정렬하기 2'의 링크이다. [백준알고리즘] 2751번: 수 정렬하기 2 -C++ (tistory.com) '수 정렬하기 2'와 달라진 점은 정렬할 수의 범위는 .. 더보기
[백준알고리즘] 2751번: 수 정렬하기 2 -C++ [백준알고리즘] 2751번: 수 정렬하기 2 -C++ 2751번: 수 정렬하기 2 (acmicpc.net) 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 와... 정말 많은 코드를 내서 겨우 통과했다... 그런데 알고 봤더니 로직은 다 맞았었다... 후... 오늘도 이렇게 삽질로 배웠다..! 그리고 특이한 점을 또 발견했다!! 우선, 예전에 파이썬으로 풀었던 풀이에 대한 링크다. 이때 역시 거만하군ㅋ 역시 간단하게 풀어놓기도 했다.. [백준알고리즘] 2751번: 수 정렬하기 2 -Python (.. 더보기
[백준알고리즘] 1436번: 영화감독 숌 -C++ [백준알고리즘] 1436번: 영화감독 숌 -C++ 1436번: 영화감독 숌 (acmicpc.net) 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 문제를 어떻게 풀어야할까 고민을 많이 했다. 처음에는 666을 기준으로 왼쪽과 오른쪽에 숫자를 넣어서 가능한 수들을 찾아야 하나 했으나, 대소 비교를 해야 한다는 점이 걸렸다. 1만 번째의 종말의 수가 몇인지를 모르니 언제까지 수를 늘릴지도 모르고 좌우로 어디부터 어떻게 넣어야 할지도 애매했다. 그래서 1부터 그냥 수를 늘려가면서 666이 들어가는지 확인하는 방.. 더보기
[백준알고리즘] 1018번: 체스판 다시 칠하기 -Python, C++ [백준알고리즘] 1018번: 체스판 다시 칠하기 -Python, C++ 1018번: 체스판 다시 칠하기 (acmicpc.net) 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 예전에 파이썬으로 풀었던 문제이지만 포스팅을 하지 않았었다. 예전에 풀었던 파이썬 코드는 가장 아래쪽에 넣어두었다. 주어진 입력이 들어오면 가장 수정을 적게해도 되는 8x8 크기의 체스판을 떼어내면 된다. 그러다 보니 직접 일일이 8x8 크기의 체스판을 떼어내는 모든 경우에 수정해야 하는 칸의 수를 카운팅 했다. 처음에는 각 시.. 더보기

728x90