반응형
1. 문제
■ URL : https://www.acmicpc.net/problem/1541
2. 핵심요약
■ 첫째 줄에 식이 주어진다.
■ 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있다.
■ 가장 처음과 마지막 문자는 숫자이다. → 식의 가장 첫 부분은 양수로 시작한다.
■ 연속해서 두 개 이상의 연산자가 나타나지 않는다.
3. 문제풀이 접근
■ 문제의 내용을 종합하면 아래와 같은 형태를 만들어야만 식의 결과가 최소값으로 나타난다.
4. 파이썬 코딩
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
isTest = True
if isTest:
f = open("./1541.txt", 'r')
input = f.readline()
else:
input = input()
q_tkn_arr = input.split('-')
answer = 0
for i in range(len(q_tkn_arr)):
sub_sum = 0
s_tkn_arr = map(int, q_tkn_arr[i].split('+'))
for s_tkn in s_tkn_arr:
sub_sum += s_tkn
if len(q_tkn_arr) == 1 or i == 0:
answer = sub_sum
else:
answer -= sub_sum
print(answer)
|
cs |
5. JavaScript 코딩
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
let isTest = true
let fs = require('fs');
let input;
if (isTest) {
input = fs.readFileSync('./1541.txt').toString().split('\n');
} else {
input = fs.readFileSync('/dev/stdin').toString().split('\n');
}
let q = input[0];
q_tkn_arr = q.split('-')
answer = 0
for (let i = 0; i < q_tkn_arr.length; i++) {
let sub_sum = 0;
s_tkn_arr = q_tkn_arr[i].split('+').map(Number)
for (let j = 0; j < s_tkn_arr.length; j++) {
sub_sum += s_tkn_arr[j];
}
if (q_tkn_arr.length === 1 || i === 0) {
answer = sub_sum;
} else {
answer -= sub_sum;
}
}
console.log(answer);
|
cs |
반응형
'알고리즘(코딩테스트)' 카테고리의 다른 글
[백준] 주유소 (0) | 2024.10.05 |
---|---|
[백준] 수들의 합 (0) | 2024.10.05 |
[백준] 설탕 배달 (0) | 2024.10.04 |
[백준] ATM (1) | 2024.10.03 |
[백준] 동전 0 (0) | 2024.10.03 |