FickleBoBo

[BaekJoon] 3197번 - 백조의 호수 [Java][C++]

문제 링크 1. 문제 풀이 물과 닿은 얼음은 매일 녹을 때 며칠 후 두 백조가 만날 수 있는지 구하는 문제로 단순히 얼음을 녹이고 백조가 만날 수 있는지 찾는 방식을 반복하는 것으로는 시간 내에 해결할 수 없다. 호수의 각 얼음에 대해 해당 얼음이 며칠 뒤에 녹는지를 전부 구한 후 매개 변수 이분 탐색을 통해 두 백조가 만날 수 있는 날을 ...

[BaekJoon] 1600번 - 말이 되고픈 원숭이 [Java][C++]

문제 링크 1. 문제 풀이 원숭이는 기본적으로 상하좌우로만 움직일 수 있지만 최대 $K$ 번은 말처럼 움직일 수 있다. 최단 거리 BFS를 통해 해결할 수 있는데 이때 특정 좌표를 단순히 방문하는 것만 체크하는게 아니라 말처럼 몇 번 움직여서 방문했는지를 체크하면 두 움직임을 조합한 최단 거리를 구할 수 있다. 이를 위해 3차원 배열로 방문...

[BaekJoon] 10163번 - 색종이 [Java][C++]

문제 링크 1. 문제 풀이 주어진 평면을 시계 방향으로 90도 돌리면 2차원 배열의 입력으로 처리할 수 있다. 이때 각 색종이를 의미하는 네 정수는 각각 색종이의 시작 행, 시작 열, 세로 길이, 가로 길이가 된다. 첫 번째 색종이부터 차지하는 영역을 2차원 배열에 마킹하면 다음 색종이가 이 값을 덮어씌우는 것으로 문제와 동일하게 색종이가 ...

[BaekJoon] 7576번 - 토마토 [Java][C++]

문제 링크 1. 문제 풀이 주어진 창고에서 익은 토마토 옆의 토마토는 다음 날 익은 토마토가 될 때 경과를 찾아야 하는 문제로 최단 거리를 구할 수 있는 BFS를 활용하면 해결할 수 있다. 초기 안 익은 토마토의 수와 익은 토마토의 좌표를 찾은 후 BFS에서 익은 토마토 옆에 있는 안 익은 토마토는 다음 날 익으므로 큐에 넣어주고 안 익은 ...