벌집처럼 육각형으로 이루어져 있는 칸에 적힌 수까지 가려면 몇 개의 방을 지나야 하는지 출력하는 문제
지나가야 하는 방의 개수 2개 : 2, 3, 4, 5, 6, 7 - 6개
지.방.개. 3개: 8, 9, 10, 11, ... 19 - 12개
지.방.개. 4개: 20 ~ 37 - 18개
6씩 늘어난다
X = int(input())
a = 1
six = 6
cnt = 1
while X > a :
cnt += 1
a = a + six
six += 6
print(cnt)
X는 주어진 수
a는 지.방.개.가 cnt개일 때 할당되는 수 중 가장 큰 수
(예를 들어, cnt = 2이고 a = 7일 때 2~7까지는 지.방.개.가 2개(=cnt)이다.)
six는 늘어나는 수의 개수..
즉 6, 12, 18 이렇게 늘어나니까 한 번 while문을 돌 때 6씩 늘어난다.
cnt는 지.방.개.의 개수
최종적으로 출력하는 내용이다.
'공부하자! > 알고리즘' 카테고리의 다른 글
백준 10814 파이썬 나이순 정렬 (0) | 2021.06.01 |
---|---|
백준 4153 파이썬 직각삼각형 (0) | 2021.05.31 |
백준 2941 파이썬 크로아티아 알파벳 (0) | 2021.05.20 |
백준 5622 파이썬 다이얼 (0) | 2021.05.20 |
백준 2606 파이썬 바이러스 (0) | 2021.05.14 |