제리의 기록

[백준] 18111번_마인크래프트(Java)

문제 풀이 백준의 18111번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 땅의 높이를 모두 같게 만드려면 어느 높이로 같게 만들 것인지를 결정해야 합니다. 기준이 될 땅의 높이는 min, max 사이에 존재할 것이므로 min부터 max까지 순회하며 시간이 최소로 걸리는 땅의 최대 높이를 찾아내면 됩니다. (주의할...

[백준] 1181번_단어 정렬(Java)

문제 풀이 백준의 1181번 문제입니다. 문제 출처 (1) 문제 파악 알파벳 소문자로 이루어진 단어를 정렬하는 문제입니다. (2) 문제 풀이 방법 생각하기 중복된 단어는 하나만 남기고 제거해야 한다고 하니, Set을 사용하면 좋을 것 같네요! Set에 단어들을 담아 중복을 제거한 뒤, 단어들을 문제의 정렬 방식대로 정렬하면 됩니다. (3)...

[백준] 1018번_체스판 다시 칠하기(Java)

문제 풀이 백준의 1018번 문제입니다. 문제 출처 (1) 문제 파악 가지고 있는 보드를 잘라 체스판을 만드는 문제입니다. (2) 문제 풀이 방법 생각하기 체스판의 크기는 8 * 8로 고정되어 있으니 보드가 주어지면 만들 수 있는 체스판의 개수가 나옵니다. 색칠할 칸의 최소 개수를 구하는 문제이므로, 가능한 보드를 모두 잘라 확인해보고 최소...

[백준] 9461번_파도반 수열(Java)

문제 풀이 백준의 9461번 문제입니다. 문제 출처 (1) 문제 파악 보자마자 DP가 떠오르는 문제입니다. 이어지는 수열을 계산하면 되는 문제이지요! (2) 문제 풀이 방법 생각하기 변이 더해져서 다음 것이 생기는거니까 앞 부분을 더해서 식을 만들어볼까? 하는 생각으로 규칙을 찾아보았습니다. 문제에 나온 예시를 통해 다음과 같은 규칙을 쉽게...

카운팅 정렬(계수 정렬)

카운팅 정렬이란? 카운팅 정렬이란 단어 그대로 정렬 알고리즘 중 하나입니다. 그렇다면 앞에 붙은 카운팅은 무엇일까요? 무엇을 카운팅한다는 것일까요? 정답은 데이터의 값이 몇 번 등장했는지를 카운팅하는 것입니다. 대부분의 정렬은 데이터의 값을 직접 비교하여 정렬하는 경우가 많지만 데이터 값의 직접 비교는 시간 복잡도가 O(NlogN)보다 작아질 수 ...

[백준] 2108번_통계학(Java)

문제 풀이 백준의 2108번 문제입니다. 문제 출처 (1) 문제 파악 문제에서 알려준 그대로 연산 결과를 출력하면 되는 문제입니다. (2) 문제 풀이 방법 생각하기 이 문제에서의 포인트는 최빈값 입니다! 숫자 값의 범위는 -4000에서 4000까지로 범위가 작으므로 각각을 인덱스로 사용하는 배열을 만들어 값의 숫자를 카운팅하였습니다. (3...