티스토리 뷰

2023-07-03 업데이트 코드
n = int(input())

count = 1
room = 2
r = 6
while n > 1:
    count += 1

    if room <= n < room + r:
        break

    room += r
    r += 6

print(count)

 

 

 


이 문제는 참 재밌어요. 골똘히 고민하다가 알고리즘이 딱! 생각날 때가 가장 쾌감이 큽니다 ㅎㅎ 코딩의 묘미.

 

제 깃허브에도 똑같은 정답 코드가 업로드 되어 있습니다 :)

https://github.com/kmi0817/coding_test_practice/tree/main/baekjoon_step/step8

 

GitHub - kmi0817/coding_test_practice: 백준 홈페이지의 단계별로 풀어보기 코드입니다.https://www.acmicpc.net/

백준 홈페이지의 단계별로 풀어보기 코드입니다.https://www.acmicpc.net/step - GitHub - kmi0817/coding_test_practice: 백준 홈페이지의 단계별로 풀어보기 코드입니다.https://www.acmicpc.net/step

github.com


 

벌집 (2292번)

등차수열로 풀었습니다.

  • 1 (1개), 2 ~ 7 (6개), 8 ~ 19 (12개), 20 ~ 37 (18개), 38 ~ 61 (24개)...
  • 1과 2~7, 8~19 등이 각 room이고, 각 room마다 포함되는 수의 개수가 6씩 늘어납니다.
  • 입력한 N이 어떤 room의 left num과 right num 사이에 들어 있으면, N까지 가는 데 rooms개의 방의 지나갑니다.
N = int(input())
if N < 1 or N > 1000000000 :
    print("N should be between 1 and 1,000,000,000")

rooms = 1
start_num = 1
end_num = 1
n = 0 # 6n (n >= 1) & 1 (n = 0)

while N not in range(start_num, end_num + 1) :
    n = n + 6
    rooms = rooms + 1
    start_num = end_num
    end_num = end_num + n

print(rooms)

 

 


 

백준 단계별로 풀어보기 이전 문제 파이썬 정답 코드는 아래 링크를 확인해주세요 :)

2022.01.05 - [백준/단계별로 풀어보기] - 백준 단계별로 풀어보기 8단계 기본수학1 손익분기점 1712번 파이썬 정답

 

백준 단계별로 풀어보기 8단계 기본수학1 손익분기점 1712번 파이썬 정답

알고리즘 공부를 아직 안 한 터라, 8단계부터는 문제를 생각하는 데 시간이 걸리네요! 그래서 8단계부터는 한 문제씩 코드를 작성해 보려고 합니다. 제 깃허브에서도 백준 8단계 정답 코드를 확

thisismi.tistory.com

 

728x90