[백준] 2564.경비원 (Swift)
https://www.acmicpc.net/problem/2564
풀이
탐색할 좌표들은 주어진 사각형의 가장자리에만 위치하고 있습니다.
저는 일단 이 좌표들을 2차원 배열 위에 옮겼습니다. 좌표들은 칸이 아닌 점에 위치하고 있기 때문에 행과 열의 개수는 하나씩 더 크게 선언해주었습니다.
문제의 입출력 예시를 2차원 배열에 저장한 것은 아래와 같습니다.
하지만 이렇게 되면 좌표간의 거리를 계산하는것이 매우 복잡해지기 때문에 저는 이 가장자리 좌표들의 정보를 1차원 배열로 다시 옮겨보고자 했습니다.
입출력 예시를 간단하게 그림으로 표현해봤습니다. 빨간색으로 표시한 부분을 기점으로 사각형을 1차원 배열에 옮기면 아래 그림과 같이 변형됩니다.
이렇게 1차원 배열에 좌표들을 옮기면 거리 계산이 훨씬 간단해집니다.
그림에 표시된 A 와 B 값중 작은 값은 좌표간의 최단 거리가 됩니다.
코드
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 18808.스티커 붙이기 (Swift) (0) | 2022.06.17 |
---|---|
[백준] 2461.대표 선수 (Swift) (0) | 2022.06.01 |
[백준] 19238.스타트 택시 (Swift) (0) | 2022.05.24 |
[백준] 5639.이진 검색 트리 (Swift) (0) | 2022.05.24 |
[백준] 1655.가운데를 말해요 (Swift) (0) | 2022.05.24 |