[백준] 2292번 : 벌집 (파이썬)

뚝딱이 공학도·2022년 2월 20일
0

문제풀이_백준

목록 보기
65/160

문제

나의 답안

n=int(input())
count=1 #벌집의 개수
add=1 #총 몇개의 방을 거치는지

while n>count:
    count+=6*add #6의 배수만큼 증가
    add+=1 #++
    
print(add)

접근 방법

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

0개의 댓글