문제 해석
그림을 보니 안에 있는 숫자를 보기보단 것에 있는 껍질들을 봤다.
1을 감싸는건 6개
6개를 감싸는건 12개
12개를 감싸는건 18개
...
즉, 껍질의 갯수는 6의 배수로 늘어난다.
그럼 각 숫자가 어떤 껍질에 있는지 알까?
13을 봐보자.
13을 1칸 땡기면 12가 된다.
12를 6칸 땡기면 6이 된다.
6을 12칸 땡기면 -6이 된다.
-6은 존재할 수 없으니 2번 땡겼으니 2번째 껍질에 있을 것이다.
1부터 2번째 껍질까지의 길이는 3이다.
코드
input_num = int(input())
count = 0
result = input_num - 1
while(True):
result =result - (6 * count)
if(result <=0):
count +=1
break
count +=1
print(count)
result는 입력받은 것에서 바로 1을 뺀다. 첫 번째 껍질부터 시작하기 위함이다.
while문을 돌려 6의 배수에서 뺐다.
만약 0이나 음수가 나오면 while문을 멈춘다.
그 때, 1부터 시작한 값을 구해야 하니 1을 더하고 count한 값을 출력한다.
728x90
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
[백준 알고리즘/Python3] 2869 달팽이는 올라가고 싶다. (0) | 2021.09.05 |
---|---|
[백준 알고리즘/Python3] 1193 분수찾기 (0) | 2021.09.04 |
[백준 알고리즘/Python3] 1712 손익분기점 (0) | 2021.09.02 |
[백준 알고리즘/Python3] 1316 그룹 단어 체커 (0) | 2021.09.01 |
[백준 알고리즘/Python3] 2941 크로아티아 알파벳 (0) | 2021.08.31 |