알고리즘

[BOJ/그리디] 1541 잃어버린 괄호

motti 2023. 5. 15. 20:25
반응형

문제 링크 : https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net


풀이

sik = input()

# 마이너스 부호로 split
sik = sik.split('-')

# 쪼개진 식들을 연산후 리스트에 넣기
answer = []
for i in sik:
      # +로 묶였을 경우 쪼개주고 리스트로 구분 -> sum해서 한번에 계산, 단독이라면 그냥 sum
      res = list(map(int, i.split('+')))
      answer.append(str(sum(res)))

# 최종 리스트를 "-"로 조인후 eval
print(eval("-".join(answer)))
  • ‘-’로 쪼개인 애들에 대해서 다시 ‘+’로 쪼개고 리스트로 map하는 것을 생각하는 것에 오래 걸렸다
  • eval 은 문자열로 식이 주어지면 자동으로 계산한다. 하지만 문자열에 0009+0123처럼 앞에 0이 붙으면 에러가 발생함 → 위처럼 쪼개서 리스트로 만든 다음 sum하는 것을 생각
반응형

'알고리즘' 카테고리의 다른 글

[BOJ/백트래킹] N과 M (2)  (0) 2023.05.23
[BOJ/완전탐색] 1018 체스판 다시 칠하기  (0) 2023.05.23
[BOJ/그리디] 1931 회의실배정  (0) 2023.05.15
[BOJ/그리디] 13305 주유소  (0) 2023.05.15
[BOJ/그리디] 11047 동전 0  (0) 2023.05.15