728x90
반응형
문제
https://www.acmicpc.net/problem/1789
1789번: 수들의 합
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
www.acmicpc.net
문제 접근
일단 그리디로 접근했다.
1부터 순서대로 더해가면서 입력값보다 큰 수가 나오는 경우에서 count -1 을 출력하면 된다.
즉, 11을 입력했을 때
1+2+3+4+5 = 15 이고 15에서 4라는 자연수를 빼면 11이 된다.
코드
s= int(input())
count = 0
total = 0
for i in range(1,s):
count+=1
total += i
if total > s:
count -= 1
break
if s == 1 or s== 2:
count = 1
print(count)
배운점
예외 찾는 부분에서 애먹었다. 입력값을 200으로 잡고 total을 다 출력을 해봤는데 틀린게 없었다.
1이나 소수인 경우에 좀 예외인 경우가 종종 있으니 앞으로 주의하자! 이 경우에는 1과 2일 때 예외여서 처리를 해주었다!
728x90
반응형
'코딩테스트' 카테고리의 다른 글
| [알고리즘] BFS 개념 정리 (+ 백준 1260) (0) | 2025.11.17 |
|---|---|
| [알고리즘] DFS 개념 정리 (+ 백준 1260) (0) | 2025.11.17 |
| [알고리즘] 백준 13305번 주유소 (파이썬) (0) | 2023.01.10 |
| [알고리즘] 백준 10162번 전자레인지 파이썬 (0) | 2023.01.09 |
| [알고리즘] 백준 5585번 거스름돈 파이썬 (0) | 2023.01.09 |