반응형
    
    
    
  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 |