https://www.acmicpc.net/problem/2018
간단한 투포인터 알고리즘을 사용한 문제이다.
#include <iostream>
using namespace std;
int main() {
long N, start = 1, end = 1, count = 0;
cin >> N;
while (end <= N) {
long sum = (start + end) * (end + 1 - start) / 2;
if (sum > N) start++;
else if (sum < N) end++;
else count++, end++;
}
cout << count;
return 0;
}
투포인터의 기본을 이해하면 쉽게 풀이가 가능하다.
'백준' 카테고리의 다른 글
1253번 (gold 4) (0) | 2025.01.12 |
---|---|
1940번 (silver 4) (0) | 2025.01.11 |
10986번 (gold 3) (0) | 2025.01.09 |
11660번 (silver 1) (0) | 2025.01.09 |
11659번 (Silver 3) (0) | 2025.01.09 |