본문 바로가기

알고리즘 (Python)/코드업 기초 100제

[CodeUp] 코드업 기초 100제 1087번 풀이 - 파이썬(python)

728x90
반응형

1087 : [기초-종합] 여기까지! 이제 그만~(설명)

시간 제한 : 1초 메모리 제한 : 128 MB

 


 

문제 설명

 

1, 2, 3 ... 을 순서대로 계속 더해나갈 때,
그 합이 입력한 정수보다 작을 동안만 계속 더하는 프로그램을 작성해보자.

즉, 1부터 n까지 정수를 계속 더한다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다.

하지만, 이번에는 그 때의 합을 출력해야 한다.

예를 들어 57을 입력하면
1+2+3+...+8+9+10=55에 다시 11을 더해 66이 될 때,
그 값 66이 출력되어야 한다.

입력

 

언제까지 합을 계산할 지, 정수 1개를 입력받는다.
단, 입력되는 자연수는 100,000,000이하이다.

출력

 

1, 2, 3, 4, 5 ... 순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우,
그때까지의 합을 출력한다.

입력 예시

 

57

출력 예시

 

66

내 풀이

 

a = int(input())
total = 0

i=1

while (total < a):
    total = total + i
    i = i + 1

print(total)

모범 답안

 

a=input()

n=int(a)

s=0
i=1
while s<n :
   s+=i
   i+=1

print(s)

해설

 

정수 a를 int형으로 입력받습니다. while 반복문을 사용하여 total 변수가 a보다 작을 때 계속 반복합니다.
반복문 내에서는 total 변수에 i를 계속 더해줍니다. 그리고 i도 계속 증가시켜줍니다.
마지막으로 저장된 total 변수를 print() 함수를 이용하여 출력해줍니다.
728x90
반응형