처음 이 문제를 마주했을 때에는 어떤식으로 풀어야 할지 감이 전혀 잡히지 않았었다.
아무래도 벌집모양의 구조를 고려하여 구현을 해야하니 벌집 모양을 리스트로 구현할 수도 없는 노릇이라 막막했다
그래서 벌집 구조라는 것에 대한 집착은 버리고 숫자의 규칙에 집중하기로 했다.
1 -> 1개의 방 통과
2~7(총 6개) -> 2개의 방 통과
8~19(총 12개) -> 총 3개의 방 통과
20~37(총 18개) -> 총 4개의 방 통과
38~61(총 24개) -> 총 5개의 방 통과
이런 규칙이 있다는 것을 알게 되었다.
즉, 통과해야하는 방의 개수로 범위를 나누어 볼 때 해당 범위에 포함되는 수의 개수가 6의 배수대로 증가한다는 것을 알게 되었다.
n = int(input())
i = 0
tmp = 1 + 6 * i
while n > tmp:
i += 1
tmp = tmp + 6 * i
print(i+1)
이런 식으로 정말 간단하게 풀릴 수 있던 문제였다.
규칙을 찾고 식을 세우는게 어려웠던 문제다.