반응형
이번 문제는 위 그림처럼 벌집이 구성될 때, 중앙의 방 1에서부터 주어지는 n번째 방 까지의 최단거리를 구하는 문제다.
먼저 각 숫자들의 규칙을 찾아보자.
벌집은 정육각형이므로 가장 중앙의 1을 둘러싸는건 6개의 방. 그 6개의 방을 둘러싸는 건 12개의 방, 그다음은 18...
이런 형식으로 1+6n씩 증가한다.
다시말해 1부터의 거리는 2~7은 2, 8~19는 3, 20~37은 4... 이러한 식으로 증가한다.
코드를 작성해보면
간단하다. n이 1인 경우만 제외하고, n에 6의 배수를 차례대로 빼서 그 값이 음수가 나올 때, 그 n이 몇번째 둘레에 있는지 알 수 있다. count를 1부터 시작한 이유는 처음 방과 목적지 방을 포함해야 하기 때문.
반응형
'Java > 백준알고리즘' 카테고리의 다른 글
백준알고리즘 #10250 ACM호텔 java (0) | 2020.02.21 |
---|---|
백준알고리즘 #1193 분수찾기 java (0) | 2020.02.17 |
백준알고리즘 #2839 설탕배달 java (0) | 2020.02.16 |
백준알고리즘 #1712 손익분기점 java (0) | 2020.02.16 |
백준알고리즘 #4673 셀프 넘버 java (단계별로 풀어보기) (0) | 2020.02.11 |