문제
나의 답안
n=int(input())
count=1
add=1
while n>count:
count+=6*add
add+=1
print(add)
접근 방법
- 각 층마다 벌집의 개수는 6의 배수만큼 변화한다.
즉, 한 층마다 6x1, 6x2, 6x3, ... 와 같이 증가한다.
- 따라서 입력받은 수가 얼마만큼의 배수를 지나는지 구해주면 된다.
- 문제 조건에서 시작을 포함하므로 벌집 개수의 초기값은 1이 된다(count=1)
- 시작을 포함하므로 무조건 1개의 방은 지난다. 따라서 벌집 개수의 초기값은 1이 된다.(count=1)
- 시작다음 부터는 6의 배수만큼 변화하므로 add도 1로 초기화해준다.(매번 1씩 증가)
- while문을 통해 입력 받은 수보다 커질 때까지 반복한다.
- 총 벌집의 개수를 6의 배수만큼 증가시킨다. 한층을 완료할 때마다, add에 1을 더해 다음 층으로 넘어갈 수 있도록한다.
- 입력 받은 수보다 벌집의 수가 커지면(즉, 해당 층의 최대값이 된다면), while문을 종료하고 몇번 반복했는지 출력해준다.