문제
본 문제는 python 의 빠른 기초 학습을 위해 설계된 문제로서 python 코드 제출을 기준으로 설명되어 있습니다.
------
1, 2, 3 ... 을 계속 더해 나갈 때,
그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지만
계속 더하는 프로그램을 작성해보자.
즉, 1부터 n까지 정수를 계속 더해 나간다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는 지를 알아보고자하는 문제이다.
내 풀이
n = int(input())
s = 0
i=0
while s<n:
i = i + 1
s = s + i
print(i)
모범답안
n = int(input())
s = 0
t = 0
while s<n :
t = t+1
s = s+t
print(t)
해설
0부터 시작할지 1부터 시작할지를 잘 골라야하는 문제. 1부터 시작하면 s+i 후 i+1 과정을 거쳐 조건 비교하기 전에 i에 1이 한 번 더 더해지기 때문에 마지막에 i-1을 해줘야 한다. 0부터 시작하면 +1 해주는 것이 더해주는 것보다 앞에 있기 때문에 상관 없다. 순서가 중요하다는 걸 깨달았다.
'CodeUp 기본 100제 - Python' 카테고리의 다른 글
[CodeUp] 6081 : [기초-종합] 16진수 구구단 출력하기 (Python) (0) | 2023.05.12 |
---|---|
[CodeUp] 6080 : [기초-종합] 주사위 2개 던지기 (Python) (0) | 2023.05.12 |
[CodeUp] 6078 : [기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기 (Python) (0) | 2023.05.12 |
[CodeUp] 6077 : [기초-종합] 짝수 합 구하기 (Python) (0) | 2023.05.12 |
[CodeUp] 6076 : [기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기2 (Python) (0) | 2023.05.12 |