개발 연습장/백준 문제풀이

[파이썬, Python] 백준 2292: 벌집

LooanCheong 2022. 12. 13. 18:48
반응형

문제

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

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌

www.acmicpc.net

코드

n = int(input())
house = 1
cnt = 1

while n > house:
    house += 6*cnt
    cnt += 1
print(cnt)

설명

규칙을 찾으면 간단하게 해결되는 문제인데 처음에 규칙이 안보여서 못 풀었던 문제다.

처음의 1을 기준으로 6칸이 늘어나고 늘어난 칸을 기준으로 6칸이 더 늘어난다.
즉 층마다 6칸씩 늘어나는 규칙을 가지고 있다.

각 층의 방을 카운트 하기 위한 house와, 몇 개의 방을 지나는지 카운트 할 cnt를 1로 설정해주고 시작한다.
n이 house보다 작으면 house에 cnt에 6을 곱한 수(각 층에 있는 방의 개수)를 더해주고 cnt를 1 늘려 다음 층으로 이동해준다.

계속 반복하여 cnt의 값을 출력한다.

반응형