본문 바로가기
Python

[백준] 1568번 : 새

by Leunco 2022. 1. 3.
유형 : 탐색

[예제]

14

[출력]

1

1. 내 풀이

N = int(input())
cnt = 0
k = 1

while True:
    if N < k:
        k = 1

    N -= k
    cnt += 1
    k += 1

    if N == 0:
        break

print(cnt)

 

2. 다른 풀이

출처 : 패스트캠퍼스 - 알고리즘 / 기술면접 완전 정복 올인원 패키지 Online

 

** 핵심 아이디어
1. N이 최대 1,000,000,000이다.
2. K가 반복적으로 증가하므로, 날아가는 새의 마리 수는 빠르게 증가한다.
3. 따라서 문제에서 요구하는 대로 단순히 구현하여 정답 처리를 받을 수 있다.

 

n = int(input())
result = 0
k = 1

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

print(result)

 

반응형

'Python' 카테고리의 다른 글

[백준] 1668번 : 트로피 진열  (0) 2022.01.03
[백준] 1302번 : 베스트셀러 ☆  (0) 2022.01.03
[백준] 1543번 : 문서 검색  (0) 2022.01.03
[백준] 11004번 : K번째 수  (0) 2022.01.03
[백준] 2751번 : 수 정렬하기 2  (0) 2022.01.03

댓글