FickleBoBo

[BaekJoon] 35309번 - 잘 정의된 들여쓰기 [Java][C++]

문제 링크 1. 문제 풀이 들여쓰기 규칙에 맞게 주어진 수열을 배치할 수 있는지 찾는 문제로 들여쓰기는 같은 레벨에 이전 수가 존재하기 않으면 1, 이전 수가 존재하는데 그 후 더 적은 레벨이 존재하면 1, 더 적은 레벨이 존재하지 않으면 해당 수의 다음 수를 적는다. 스택 자료구조를 활용해서 현재 수가 1이면 다음 레벨의 첫 수로 적고 1...

[BaekJoon] 35307번 - 하얀 전파 [Java][C++]

문제 링크 1. 문제 풀이 주어진 격자에 대해 초기엔 모든 칸이 검은색이며 특정 위치를 흰색으로 바꾼 후 전파를 시작해서 전파가 끝났을 때 하얀 칸의 최대 갯수와 해당 시간을 구하는 문제로 격자의 크기가 매우 커서 직접 전파를 하는 방식은 어렵다. 특정 칸을 하얀색으로 바꿨을 때 가로 또는 세로 방향으로 전파가 멈추는데 걸리는 시간을 몫과 ...

[BaekJoon] 28123번 - 삶, 우주, 그리고 모든 것에 관한 궁극적인 질문의 해답 [Java][C++]

문제 링크 1. 문제 풀이 $2^n$ 을 십진법으로 표기했을 때 자릿수 $k$ 와, 가장 높은 자리의 숫자 $x$ 가 주어졌을 때, $1$ 부터 $2^n$ 까지의 숫자 중 $4$ 로 시작하는 2의 거듭제곱의 수를 구해야하는 문제다. 2의 거듭제곱의 가장 높은 자리의 숫자를 추적하다보면 규칙을 발견할 수 있는데 아래 5가지 패턴의 조합으로 이...

[BaekJoon] 2631번 - 줄세우기 [Java][C++]

문제 링크 1. 문제 풀이 주어진 아이들을 오름차순으로 정렬하기 위한 최소 횟수를 구하는 문제로 옮길 아이는 임의의 위치에 배치할 수 있다는 점에서 초기 아이들의 번호에 대한 LIS를 구한 후 LIS에 포함되지 않은 아이들을 적절한 위치에 배치하면 오름차순으로 정렬하면서 최소 횟수로 이동시킬 수 있다. 2. 코드 1. 풀이 [Ja...

[BaekJoon] 25594번 - HG 음성기호 [Java]

문제 링크 1. 문제 풀이 HG 표준음성기호로 암호화된 문자열을 원래 문자열로 복호화할 수 있는지 판단하는 문제로 주어진 문자열에서 현재 바라보는 인덱스를 기준으로 해당 문자로 만들 수 있는 코드로 현재 위치에서 시작하면 복호화가 가능하다는 점을 통해 해당 과정을 전체 문자열에 대해 반복해주면 된다. 2. 코드 1. 풀이 [Jav...

[BaekJoon] 10546번 - 배부른 마라토너 [Java][C++]

문제 링크 1. 문제 풀이 $N$ 명이 마라톤에 참여하며 $N - 1$ 명이 완주하지 못했을 때 완주하지 못한 한 명을 찾는 문제로 동명이인이 있을 수 있어서 맵 자료구조를 활용해서 이름을 키, 인원을 값으로 설정해서 참여한 사람을 더하고 완주한 사람을 빼줬다. 그러면 맵에서 값이 1인 사람이 유일하게 존재하게 되며 해당 사람이 완주하지 못...