

문제를 살펴보면 새가 노래를 부르게 되는데 해당 새는 1, 2, 3...처럼 숫자를 증가하며 노래를 부른다
그리고 노래를 부를 때 말하는 숫자만큼 나무에 앉은 새가 날아가게 된다
단, 노래를 부르는 타이밍에 해당 숫자보다 나무에 앉아있는 새가 더 작다면 1로 초기화하여 다시 노래를 부른다
즉, 4마리가 남아있을때 5를 부를 타이밍이라면 1을 부른다는 것이다
해당 조건을 만족하기 위해 while bird_num > 0이라는 조건을 사용하였다 bird_num이 0이 될 때 해당 while문이
실행되지 않아야 하므로 > 를 사용하였다 이후 bird_num과 sing_num을 비교하여 sing_num이 더 큰지 확인한다
만약 더 크다면 sing_num을 1로 초기화한 후에 나머지 동작을 하면 된다
나머지 동작의 경우 걸리는 시간 측정, sing_num 증가, bird_num 최신화를 각각 해주면 된다
import sys
input = sys.stdin.readline
bird_num = int(input())
sing_num = 1
time = 0
while bird_num > 0:
if bird_num < sing_num: # 현재 나무에 앉아있는 새의 수가 지금 불러야하는 수보다 작은 경우
sing_num = 1 # 1로 초기화
bird_num -= sing_num
sing_num += 1
time += 1
print(time)


'Baekjoon' 카테고리의 다른 글
| [Baekjoon]백준 17626 Four Squares(실버 3) - Python (0) | 2025.05.03 |
|---|---|
| [Baekjoon]백준 15663 N과 M (9)(실버 2) - Python (0) | 2025.05.02 |
| [Baekjoon]백준 2776 암기왕(실버 4) - Python (0) | 2025.04.21 |
| [Baekjoon]백준 15829 Hashing(브론즈 2) - Python (0) | 2025.04.19 |
| [Baekjoon]백준 30802 웰컴 키트(브론즈 3) - Python (0) | 2025.04.17 |