[백준 알고리즘][파이썬]2292번 "벌집"

1683 단어 boj알고리즘boj

문제


입력 및 출력


풀이

n = int(input())
c = 1
while n > 1: # n>0이 아닌 n>1인 이유는 입력이 1인 경우를 거르기 위해
    n-=(6*c)
    c+=1
print(c)

정리

숫자들의 동향을 확인해 보면 1, 2~7, 8~19, 20~38, ...과 같이 방의 개수가 그룹으로 형성되는 것을 볼 수 있다. 여기서 숫자들의 개수를 살펴보면 1개, 6개, 12개, 18개, ... 과 같이 첫 번째를 제외하고서는 6의 배수로 나아가는 것을 확인할 수 있다.

기존에는 1의 경우를 나눈 후, 6의 배수를 더해감으로써 방의 개수로 구하려 했다. 그러나 오히려 역으로 입력으로 받은 수에서 6의 배수를 빼가면 1의 경우를 나눌 필요가 없다고 판단하였다.


참고
https://www.acmicpc.net/problem/2292

좋은 웹페이지 즐겨찾기