Skip to content

Commit 561479c

Browse files
committed
[Gold V] Title: 0 만들기, Time: 1580 ms, Memory: 18484 KB -BaekjoonHub
1 parent 8a2f8f6 commit 561479c

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
let fs = require('fs');
2+
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
3+
4+
let N = Number(input[0]);
5+
let K = 0;
6+
let arr = [];
7+
8+
const dfs = (result, depth) => {
9+
if (depth === K - 1) {
10+
let str = '';
11+
for (let i = 0; i < K - 1; i++) str += arr[i] + result[i];
12+
str += arr[K - 1] + '';
13+
if (eval(str.split(' ').join('')) === 0) {
14+
console.log(str);
15+
}
16+
return;
17+
}
18+
for (let x of [' ', '+', '-']) {
19+
result.push(x);
20+
dfs(result, depth + 1);
21+
result.pop();
22+
}
23+
};
24+
25+
for (let i = 1; i < N + 1; i++) {
26+
K = Number(input[i]);
27+
arr = [];
28+
for (let i = 1; i < K + 1; i++) arr.push(i);
29+
dfs([], 0);
30+
console.log();
31+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# [Gold V] 0 만들기 - 7490
2+
3+
[문제 링크](https://www.acmicpc.net/problem/7490)
4+
5+
### 성능 요약
6+
7+
메모리: 18484 KB, 시간: 1580 ms
8+
9+
### 분류
10+
11+
백트래킹, 브루트포스 알고리즘, 구현, 문자열
12+
13+
### 제출 일자
14+
15+
2025년 2월 1일 17:10:25
16+
17+
### 문제 설명
18+
19+
<p>1부터 N까지의 수를 오름차순으로 쓴 수열 1 2 3 ... N을 생각하자.</p>
20+
21+
<p>그리고 '+'나 '-', 또는 ' '(공백)을 숫자 사이에 삽입하자(+는 더하기, -는 빼기, 공백은 숫자를 이어 붙이는 것을 뜻한다). 이렇게 만든 수식의 값을 계산하고 그 결과가 0이 될 수 있는지를 살피자.</p>
22+
23+
<p>N이 주어졌을 때 수식의 결과가 0이 되는 모든 수식을 찾는 프로그램을 작성하라.</p>
24+
25+
### 입력
26+
27+
<p>첫 번째 줄에 테스트 케이스의 개수가 주어진다(<10).</p>
28+
29+
<p>각 테스트 케이스엔 자연수 N이 주어진다(3 <= N <= 9).</p>
30+
31+
### 출력
32+
33+
<p>각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다.</p>
34+

0 commit comments

Comments
 (0)