[BOJ] 백준 7576 토마토 (Swift)
문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 풀이 BFS로 풀 수 있는 문제입니다. 먼저 익어있는 토마토의 y,x 좌표를 queue에 넣어주고 시작을 해야합니다. 그 이후, 익어있는 토마토로부터 상하좌우로 0인 토마토가 익게되는데, 0일 때만 queue에 넣어주고, 0인 좌표를 익어있던 토마토 + 1의 값으로 설정해줍시다. 예를들어 [0, 0] [0, 1] 토마토가 위처럼 주어지고 하루가 지나면, [0, 2] [2, 1..
[BOJ] 백준 1697 숨바꼭질 (Swift)
문제 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 BFS로 풀 수 있는 문제입니다. x - 1, x + 1, 2 * x 로 이동이 가능한데, 모두 1초씩 걸리므로, 비용이 동일하다는 것을 알 수 있습니다. 비용이 동일할 때, 최단 경로는 BFS로 구할 수 있어서 BFS로 풀이했습니다. 초기의 queue에 수빈이의 위치와 0초를 tuple의 배열 형태로 넣어주고, x - 1, x + 1, 2 * x 만큼 떨어진..