관리 메뉴

SW

[백준 1789] 수들의 합 본문

대학교/Algorithm

[백준 1789] 수들의 합

SWKo 2020. 2. 29. 12:18

0. 제목

  • 백준 1789 수들의 합
  • BOJ 1789 수들의 합
  • C++ 1789 수들의 합

1. 문제

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


2. 풀이

  • while문이 돌면서 sum에 num을 더해준다. num을 하나 더해주었으므로 cnt도 1 더해준다.
  • 만약 sum이 구하고자 하는 값 S보다 커지면 현재 cnt 에서 1을 빼준다. 예를 들면, 18을 구하고 싶었다면 1,2,3,4,5,6 까지 가면 21로 18보다 커지고 3을 빼면 되므로 1,2,4,5,6 즉, 5개가 나온다.
  • num은 한 loop가 지날때 마다 1씩 증가한다.

3. 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main(int argc, const char * argv[]) {
    long long S;
    int num = 1;
    int cnt = 0;
    long long sum = 0;
    
    cin >> S;
    while(1){
        sum += num;
        cnt++;
        if(sum > S){
            cnt--;
            break;
        }
        num++;
    }
    cout << cnt << '\n';
    return 0;
}

'대학교 > Algorithm' 카테고리의 다른 글

[백준 2022] 사다리  (0) 2020.02.29
[백준 2003] 수들의 합 2  (0) 2020.02.29
[백준 1932] 정수 삼각형  (0) 2020.02.28
[백준 1735] 분수 합  (0) 2020.02.27
[백준 7562] 나이트의 이동  (0) 2020.02.27
Comments