Skip to content

Commit 2df82ca

Browse files
committed
[Silver V] Title: 수들의 합 5, Time: 656 ms, Memory: 14276 KB -BaekjoonHub
1 parent 5244ca4 commit 2df82ca

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# [Silver V] 수들의 합 5 - 2018
2+
3+
[문제 링크](https://www.acmicpc.net/problem/2018)
4+
5+
### 성능 요약
6+
7+
메모리: 14276 KB, 시간: 656 ms
8+
9+
### 분류
10+
11+
수학, 두 포인터
12+
13+
### 제출 일자
14+
15+
2026년 2월 10일 20:35:23
16+
17+
### 문제 설명
18+
19+
<p>어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다.</p>
20+
21+
<p>예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다.</p>
22+
23+
<p>N을 입력받아 가지수를 출력하는 프로그램을 작성하시오.</p>
24+
25+
### 입력
26+
27+
<p>첫 줄에 정수 N이 주어진다.</p>
28+
29+
### 출력
30+
31+
<p>입력된 자연수 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 출력하시오</p>
32+
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
import java.io.BufferedReader;
3+
import java.io.FileInputStream;
4+
import java.io.InputStreamReader;
5+
import java.util.*;
6+
7+
public class Main {
8+
9+
public static void main(String[] args) throws Exception {
10+
//System.setIn(new FileInputStream("input.txt")); // 제출 시 이 줄만 주석처리
11+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
12+
13+
int n = Integer.parseInt(br.readLine());
14+
15+
int result = 0;
16+
for (int i = n; i > 0; i--) {
17+
int sum = i;
18+
int cur = i;
19+
while (sum < n) {
20+
cur--;
21+
sum += cur;
22+
}
23+
24+
if (n == sum) {
25+
result++;
26+
}
27+
}
28+
System.out.println(result);
29+
}
30+
31+
32+
}

0 commit comments

Comments
 (0)