공부 기록장
[백준 - Python] 1541. 잃어버린 괄호 (그리디) 본문
https://www.acmicpc.net/problem/1541
코드
eq = input().split('-')
answer = 0
for i in eq[0].split('+'):
answer += int(i)
for i in eq[1:]:
for j in i.split('+'):
answer -= int(j)
print(answer)
문제 이해를 잘못 했다.
괄호를 한 쌍만 사용해서 식의 값을 최소로 만드는 것인줄 알았는데,
괄호를 쓰고 싶은 만큼 쓸 수 있는 것이었다.
문제를 제대로 이해했다면 아이디어를 떠올릴 수 있었을까?
+ 부호 연산을 먼저 전부 계산하고,
계산된 숫자들을 이용해 - 연산을 수행하면 최소값을 얻을 수 있다.
해당 아이디어를 떠올리는 것은 어렵지 않은데,
아디이어를 어떻게 구현할 지가 더 관건이었던 것 같다.
입력으로 들어온 문자열을 - 부호를 기준으로 잘라서 eq 리스트에 저장한다.
eq 리스트에 저장된 각 요소들을,
이번에는 + 부호를 기점으로 잘라서 덧셈식을 계산해준다.
생각한 대로라면 덧셈식을 계산한 후에,
정답으로 반환할 값에서 덧셈식의 결과값을 빼주어야 맞지만,
구현적으로는 덧셈식의 정수들을 순차적으로 빼주는 식으로 구현하였다.
'코딩 테스트 > 백준 문제 풀이' 카테고리의 다른 글
[백준 - Python] 1931. 회의실 배정 (그리디) (0) | 2024.01.06 |
---|---|
[백준 - Python] 16953. A → B (그리디) (1) | 2024.01.03 |
[백준 - Python] 1449. 수리공 항승 (그리디) (1) | 2024.01.03 |
[백준 - Python] 13305. 주요소 (그리디) (1) | 2024.01.03 |
[백준 - Python] 2217. 로프 (그리디) (1) | 2024.01.03 |