※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 2018번 문제인 수들의 합 5이다.
문제는 아래 링크를 확인하자.

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

 

2018번: 수들의 합 5

어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한

www.acmicpc.net

2003번 문제(링크)에서 배열 A[i]이 양의 정수열 A[i] = i인 특수 케이스이다.

 

위 링크의 해설을 참고해 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int N;
int ans;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N;
	int L = 0, R = 0, psum = 0;;
	while (R <= N) {
		if (psum < N) psum += ++R;
		else if (psum > N) psum -= L++;
		else {
			ans++;
			psum += ++R;
			psum -= L++;
		}
	}

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 2268 // C++] 수들의 합 7  (0) 2023.04.06
[BOJ 1821 // C++] 수들의 합 6  (0) 2023.04.05
[BOJ 2015 // C++] 수들의 합 4  (0) 2023.04.03
[BOJ 2007 // C++] 수들의 합 3  (0) 2023.04.02
[BOJ 2003 // C++] 수들의 합 2  (0) 2023.04.01

+ Recent posts