SW
[백준 1789] 수들의 합 본문
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