링크 : https://www.acmicpc.net/problem/1789
- 문제
- 소요 시간 : 6분 29초


- 설계하기(접근방법)
1. 숫자 n을 입력받는다
2. 1부터 숫자를 더해 나간다.
1, 3 , 6, 10 ....
ex) 숫자가 13인 경우
1 + 2+ 3+ 4 +5 = 15
15라는 숫자가 숫자 5개로 합을 표현할수 있는 15 ~ 20 중 최소의 수다
즉 10이상 15미만의 수는 숫자 4개로 합을 표현할 수 있는 수이다.
3. n을 넘어가는 순간 반복 횟수 - 1을 출력하면 된다
- 코드(출력)
n = int(input()) # 13
cnt = 0
num = 0
while (n >= cnt):
num += 1 # 1, 2, 3, 4 ,5
cnt += num # 1, 3, 6, 10, 15
print(num - 1)
- 얻어갈 부분
1. 반복문을 선언할 때 반복되는 변수의 위치를 어떻게 조정하느냐에 따라 코드의 가독성이 달라진다. 코드를 쓰기 전에 미리 생각해보자
'알고리즘(백준) > 그리디' 카테고리의 다른 글
| [알고리즘/그리디] 10610 번 : 30 - python (0) | 2023.02.21 |
|---|---|
| [알고리즘/그리디] 13305번 : 주유소 - python (0) | 2023.02.21 |
| [알고리즘/그리디] 10162번 : 전자레인지 - python (0) | 2023.02.21 |
| [알고리즘/그리디] 1541번 : 잃어버린 괄호 - python (0) | 2023.02.20 |
| [알고리즘/그리디] 5585 번 : 거스름돈 - python (0) | 2023.02.20 |