감자튀김 공장🍟

[백준/2292] 벌집 (with 파이썬) 본문

Algorithm/BOJ

[백준/2292] 벌집 (with 파이썬)

Potato potage 2022. 10. 20. 13:33
반응형

✔ 문제


풀이

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

while n > honeycomb: 
    honeycomb += 6 * cnt
    cnt += 1

print(cnt)

 설명

먼저 honeycomb 1에서 시작하게 되는데 1번 벌집에서부터의 거리를 따지면

거리 1: 1번 벌집

거리 2: 2~7번 벌집

거리 3: 8~19번 벌집

거리 4: 20~37번 벌집

거리 5: 38~61번 벌집

으로 나뉘어진다.

 

이를 수식화 하면 (1 + 6 * n)이 되는데 ((거리2 벌집의 개수는 6개, 거리 3은 12개, 거리 4는 18개로 6의 배수로 증가함을 알 수 있기 때문이다.)) 벌집이 n보다 커지기 전까지 계속 while 문을 돌면서 벌집의 숫자를 점차 키워가며 거리를 +1씩 하면 된다.

결국 honeycomb는 1 > 7 > 19 > 37 로 커지게 된다. (이는 각 거리에서 갈 수 있는 최대 벌집의 숫자이다.)

n이 1보다 크면 6*1을 더하고 거리(cnt)에 +1을 한다.

n이 7보다 크면 6*2을 더하고 거리(cnt)에 +1을 한다.

 

이를 반복하여 honeycomb이 n보다 커지게 되면 반복문을 종료하고 cnt 값을 출력한다.


후기

수학적 공식은 파악했는데 또 구현하는데에서 막혔었다.

언제쯤 안막히냐....ㅎ 다시 풀어봐야겠다.


✔ 참고 링크

https://codingpractices.tistory.com/entry/%EB%B0%B1%EC%A4%80-2292%EB%B2%88-%EB%B2%8C%EC%A7%91-%ED%8C%8C%EC%9D%B4%EC%8D%AC-python

 

[백준] 2292번 벌집 파이썬 python

벌집 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 92978 41745 35946 44.808% 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작

codingpractices.tistory.com

 

반응형
Comments