๋ฌธ์
https://www.acmicpc.net/problem/1789
๋ฌธ์ ์ดํด
์๋ก ๋ค๋ฅธ N๊ฐ์ ์์ฐ์์ ํฉ์ด S์ด๋ค. S๊ฐ ์ฃผ์ด์ง ๋ N์ ์ต๋๊ฐ์ ๊ตฌํ๋ค.
๋ฌธ์ ํ์ด
๐ก ์์ด๋์ด
- N์ด ์ต๋๊ฐ ๋๋ ค๋ฉด, ์์ฐ์๋ฅผ 1๋ถํฐ ์ฐจ๋ก๋๋ก ๋ํ๋ ๋ฐฉ์์ ์๊ฐํ ์ ์๋ค.
- 1 + 2 + 3 + 4 + ... = S ์ด๋ฐ์์ผ๋ก ๋ํ ๊ฒฝ์ฐ N์ด ์ต๋๊ฐ ๋๋ค.
- 1 + 2+ 3 + ... + n = n * (n + 1) / 2 ์ธ ์ ์ ์ด์ฉํด์ ์์๋ฅผ ์ดํด๋ณผ ์ ์๋ค.
- ์: 200
- 1 + 2 + 3 + ... + 18 + 19 = 190 ์์ 10์ ๋ํ๋ฉด, ์๋ก ๋ค๋ฅธ ์๋ผ๋ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ๋ชปํ๋ค.
- 1 + 2 + 3 + ... + 17 + 18 = 171 ์ด๋ฏ๋ก, 29๋ฅผ ๋ํ๋ฉด 200์ด ๋๋ค.
- N์ ์ต๋๊ฐ์ 19์ด๋ค.
๐จ ๊ตฌํ
- ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํ์ฌ S์์ ์์ฐ์ 1๋ถํฐ ์ฐจ๋ก๋๋ก ๋บ๋ค.
- ์ข ๋ฃ ์กฐ๊ฑด์ S๊ฐ 0๋ณด๋ค ์์์ง๋ฉด ๋์ด์ ๋บ ์ ์์์ ์ด์ฉํ๋ค.
๐จ S์ ํฌ๊ธฐ
S์ ์ต๋ ํฌ๊ธฐ๋ 4,294,967,295์ด๋ฏ๋ก int ๋ฒ์๋ฅผ ์ด๊ณผํ๋ค.
์ฝ๋
#include<iostream>
using namespace std;
int main() {
long long s;
int n = 1;
cin >> s;
while (s >= n) {
s -= n++;
}
cout << n - 1;
return 0;
}
'๐ญ Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 3085๋ฒ: ์ฌํ ๊ฒ์ (0) | 2024.10.30 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 15650๋ฒ: N๊ณผ M (2) (0) | 2024.10.28 |
[BOJ][C++] ๋ฐฑ์ค 15649๋ฒ: N๊ณผ M (1) (0) | 2024.10.28 |
[SWEA][C++] 1289. ์์ฌ์ ๋ฉ๋ชจ๋ฆฌ ๋ณต๊ตฌํ๊ธฐ (0) | 2024.10.16 |
[BOJ][C++] ๋ฐฑ์ค 2002๋ฒ: ์ถ์ (0) | 2024.06.14 |