Z (1074번) https://www.acmicpc.net/problem/1074 풀이방법 r, c가 몇 사분면 위에 있는지 확인 해당 사분면의 시작번호 파악 8x8 에서는 4x4가 하나의 사분면이므로 1사분면 : 0~15 2사분면 : 16~31 3사분면 : 32~47 4사분면 : 48...
[BOJ 11729] 하노이 탑 이동 순서
하노이 탑 이동 순서 (11729번) https://www.acmicpc.net/problem/11729 풀이방법 재귀로 풀어야 하는 문제로, N번째 원판을 3번째 기둥에 넣기 위해서는 N-1번째 원판을 2번째 기둥에 넣어야하고 2번째 기둥에 있는 원판을 1개만 남겨두고 다시 1번째 기둥에 옮긴 후 1개만 남은 원판을 3번째 기둥에 넣는다. ...
[BOJ 7562] 나이트의 이동
나이트의 이동 (7562번) https://www.acmicpc.net/problem/7562 풀이방법 전형적인 BFS 문제이다. X, Y가 움직일 수 있는 모든 경우의 수 8가지를 이용해 문제를 해결한다. import java.io.IOException; import java.io.BufferedReader; import java.io...
[BOJ 7569] 토마토
토마토 (7569번) https://www.acmicpc.net/problem/7569 풀이방법 숫자를 입력받을 때 익은 토마토의 좌표를 Queue에 넣는다. Queue에서 하나씩 빼면서 위,아래,상,하,좌,우에 현재값 +1 한다. 방문하지 않은 곳은 -1로 설정한다. +1할때마다 최대값을 구한다. import java.io.IO...
[BOJ 10026] 적록색약
적록색약 (10026번) https://www.acmicpc.net/problem/10026 뻘짓 단순히 생각하면 되는데 어렵게 생각했다. 적록색약인 경우 R인지 G인지 확인하고 상하좌우의 값이 R 또는 G인 경우에만 더해주는 방식으로 구현해보려했는데 잘 되지 않았다. 풀이방법 BFS를 이용해 적록색약이 아닐 때의 개수를 센다. ...
[BOJ 1012] 유기농 배추
유기농 배추 (1012번) https://www.acmicpc.net/problem/1012 풀이방법 전형적인 BFS문제로, 배추가 있으면서 방문하지 않은 곳인지 확인한다. 해당 위치부터 상,하,좌,우 위치에 있는 값을 확인해 방문했다는 표시를 남긴다. 이렇게 되면 이미 방문한 곳은 제외하므로 BFS가 끝나면 벌레의 개수를 1증가시킨다....
[BOJ 1697] 숨바꼭질
숨바꼭질 (1697번) https://www.acmicpc.net/problem/1697 풀이방법 BFS, DP로 풀 수 있는 문제이다. 거리 배열을 넉넉하게 200,000으로 설정했다. 문제는 100,000까지지만 100,000보다 크게 갔다가 돌아올 수 있으므로 +1, -1, *2를 하면서 해당 위치...
[BOJ 4179] 불!
불! (4179번) https://www.acmicpc.net/problem/4179 풀이방법 지훈과 불의 거리 BFS를 이용해 문제를 해결한다. 불의 거리를 BFS로 구한다. 지훈의 거리를 BFS로 구한다. 단, 거리를 구하다가 X, Y의 범위에서 벗어날 경우 해당 위치가 정답이 될 가능성이 있다. 정답이...
[BOJ 7576] 토마토
Last Update : 2022-06-22 00:26:07 +0900 토마토 (7576번) https://www.acmicpc.net/problem/7576 풀이방법 숫자를 입력받을 때 익은 토마토의 좌표를 Queue에 넣는다. Queue에서 하나씩 빼면서 상하좌우에 현재값 +1 한다. 방문하지 않은 곳은 -1로 설정한다. +1할...
[BOJ 2178] 미로 탐색
Last Update : 2022-06-21 00:11:42 +0900 C++로 재풀이 미로 탐색 (2178번) https://www.acmicpc.net/problem/2178 풀이방법 BFS(너비우선탐색)를 이용한 문제풀이 무조건 (1,1)에서 (N,M)까지라고 하였으므로 어디서부터 시작해야하는지 찾을 필요 없음 시작점에서의...