99클럽 코테 스터디 12일차 TIL: 3차원 그래프
문제https://www.acmicpc.net/problem/7576풀이토마토 문제와 비슷한 문제이다.조금 다른점이 하나 있는데 높이가 추가되었다는 점이다.기존에 상하좌우로 퍼졌던 토마토가, 상하좌우 위아래(?) 두 방향이 추가되었다.나는 이런 문제를 풀 때, 기존에 방향을 설정해줄 변수로 dy, dx을 다음과 같이 정의하였다.let dy = [1, 0, -1, 0]let dx = [0, 1, 0, -1]북동남서 방향으로 시계방향으로 정의하였었는데, 이제 추가로 z축도 필요하다고 생각했다.그래서 방향을 다음과 같이 정의했다.let dz = [0, 0, 0, 0, 1, -1]let dy = [1, 0, -1, 0, 0, 0]let dx = [0, -1, 0, 1, 0, 0]여기까지 이해했다면 반은 풀었다고..
99클럽 코테 스터디 9일차 TIL: BFS
문제https://www.acmicpc.net/problem/7562풀이나이트가 해당 좌표로 최소 몇 번 만에 이동할 수 있는지 구하는 문제최소 몇번 -> 최단 거리를 뜻하기 때문에 BFS를 떠올려서 풀이할 수 있었다.일단 나이트의 이동은 8방향이다.나이트의 현재 위치에서 이동할 수 있는 방향을 확인하기 위해 dy, dx 값을 배열로 만들었다.let dy = [2, 1, -1, -2, -2, -1, 1, 2]let dx = [1, 2, 2, 1, -1, -2, -2, -1]와 같은 형식으로 만들었다.let position = [(2, 1), (1, 2), (-1, 2)...(2, -1)]과 같이 만들어도 무방하지만 나는 첫번째 방법을 선호한다.또한 나이트의 현재 위치에서 이동하려는 위치가 체스판을 넘어가..