본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 2292번 벌집 문제

by 모두의 케빈 2023. 4. 9.

■ 2292번 벌집 문제

 

출처: 백준 2292번 벌집 문제

 

■ 코드 풀이

 

문제를 보면 숫자 2부터 7까지는 방이 2개입니다. 8부터 19까지는 방이 3개, 20부터 37까지는 방이 4개, 38부터 61까지는 방이 5개입니다. 다시 말해, 방의 개수를 정하는 범위의 끝은 +6→+12→+18→+24→ .. 씩 늘어난다고 볼 수 있습니다. 정확한 수열 용어는 기억이 나지 않지만, 목적은 코드를 푸는 것이므로 아래와 같이 구현할 수 있습니다.

N이 1이라면 바로 room의 개수를 출력하면 됩니다. N이 그 이상이라면 범위의 끝자리 숫자와 비교해야 합니다. 끝자리 숫자보다 N이 작거나 같다면, 그 구간이 바로 방의 개수가 될 테니까요.

이런 코드는 직접 손으로 따라 하셔야 이해가 빠릅니다. 7, 15, 20 이렇게 3가지 숫자에 대해 한 번 연습해 보시면 도움이 될 것 같네요. 

N = int(input())

end_num = 1
start_num = 1
room = 1
add_1 = 6
add_2 = 6

while end_num < N:
    if N == 1:
        break
    end_num += add_1
    start_num = end_num + 1
    add_1 += add_2
    room += 1

print(room)

댓글