PS 문제풀이

[C++] BOJ 1789 수들의 합

희디 2023. 5. 22. 01:52

 

#include <iostream>
using namespace std;

int main(){
    ios::sync_with_stdio(0); cin.tie(0);
    long long int S, sum, result;
    sum = 0; result = 0;
    cin >> S;
    
    for (int k=1; k<1000000; k++){
        sum = sum+k;
        if (sum == S) {
            result = k;
            break;
        }
        else if(sum > S) {
            result = k-1;
            break;
        }
    }
    cout << result;
    
    return 0;
}

 

 

 

#include <iostream>
using namespace std;

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    long long int S, result;
    result = 1;
    cin >> S;

    while ((result * (result + 1) / 2) < S) {
        result=result+1;
    }
    if (result * (result + 1) / 2 == S) cout << result;
    else cout << result -1;

    return 0;
}

 

항상 문제의 조건을 잘 보기!! 

 

시간의 초과가 나타난다면? 변수의 범위 잘 파악하고 그에 따른 자료형 설정하기