[백준/C/Python] 1789 - 수들의 합

orangesnail·2024년 9월 9일

백준

목록 보기
25/169
post-thumbnail

https://www.acmicpc.net/problem/1789


구현 과정

s를 입력받은 후, for문을 이용해 1부터 s까지 수를 더해가며 누적합 == s인지 비교하고, 맞다면 break한다. 아니라면 지금까지 더한 숫자의 개수인 n을 1 증가시킨다. 간단한 문제다!

C로 구현할 때의 주의할 점은 문제에서 주어진 S의 최대 범위가 4,294,967,295로, int형의 범위인 2,147,483,647를 넘어가기 때문에 S를 선언할 때 long long형을 사용해야 한다.


전체 코드

C

#include <stdio.h>

int main() {
    long long S, sum = 0;
    int n = 0;

    scanf("%lld", &S);

    for (int i = 1; ; i++) {
        sum += i;
        if (sum > S) break;
        n++;
    }

    printf("%d\n", n); 
    return 0;
}

Python

s = int(input())

sum = 0
n = 0

for i in range(1, s + 1):
    sum += i
    if sum > s:
        break
    n += 1

print(n)
profile
초보입니다. 피드백 환영합니다 😗

0개의 댓글