코딩테스트/문제
[백준] 1541번 잃어버린 괄호
스키(ski)
2023. 7. 3. 18:52
문제 내용
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
풀이 과정
-그리디 알고리즘 같다고 판단하였음
1.뺄셈(-) 기호를 기준으로 값이 최소가 되려면 좌항은 최소 우항은 최대가 되어야한다.
2.뺄셈 기호를 기준으로 나눠서 좌항을 최소로 만들어준다면 전체 식은 최소가 된다고 판단하였다.
풀이중 문제점
-이상 없음.
문제점 해결 과정
-이상 없음.
해결 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import sys
sys_input=sys.stdin.readline
input=sys_input().rstrip().split("-") #뺄셈 기호 기준으로 1차 분리
a_input=[]
for i in input:
a_input.append(sum(map(int,(i.split("+"))))) #좌항부터 순서대로 계산
answer=a_input[0]
for i in range(1,len(a_input)): #계산한값들을 순서대로 빼줌
answer-=a_input[i]
print(answer)
|
cs |
주요 개념
- 그리디 알고리즘 (Greedy Algorithm)
- 파싱 (Parsing)