백준#1568 새

정은경·2021년 11월 8일
0

알고리즘

목록 보기
41/125

문제


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

나의 풀이

bird_count = int(input())

left_bird_count = bird_count

second = 0
sound_count = 0
while left_bird_count > 0:
    second += 1
    sound_count += 1
    # print(sound_count, left_bird_count)
    if left_bird_count < sound_count:
        sound_count = 1
    left_bird_count -= sound_count

print(second)

남의 풀이

  • N이 최대 1,000,000,000
  • K가 반복적으로 증가하므로, 날아가는 새의 마리수는 빠르게 증가
  • 따라서 문제에서 요구하는 대로 단순히 구현하여 정답처리 받을 수 있음
  • 시간복잡도는 O(루트N)
n = int(input())
result = 0
k = 1

while n != 0:
    if k > n:
        k = 1
    n -= k
    k += 1
    result += 1

print(result)
profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글