PS/백준

[Python] 1541번 잃어버린 괄호

s_omi 2024. 7. 14. 10:14

✏️ 문제

 

문제 파악

- 기호를 기준으로 나누어서 나눈 값끼리 다 더해주면 - 기호와 붙었을 때 최대로 빼게 되므로 split() 함수를 통해 - 기호를 기준으로 나누어준다. 

 

예제1 같은 경우 

+ 기호 때문에 숫자 배열에 넣을 수 없으므로 배열에 집어넣으면 ['55', '50+40'] 와 같이 되는데 

문자열 내에 + 기호가 있으면 + 기호를 기준으로 나누어 숫자로 타입을 바꾼 후 두 개의 합을 배열에 다시 넣어주고

문자열 내에 + 기호가 없으면 그냥 숫자로 타입을 바꾼 후 배열에 다시 넣어준다.

 

그 후 배열[0] 값에서 뒷 배열의 값을 전부 빼주면 된다.

 

알고리즘

  • 수학
  • 그리디 알고리즘
  • 문자열
  • 파싱

 

 

코드

str1 = input().split('-')

for i in range(len(str1)):
  if '+' in str1[i]:
    str1[i] = sum(map(int, (str1[i].split('+'))))
  else:
    str1[i] = int(str1[i])

print(str1[0] - sum(str1[1:])) # 뒷 배열의 값들의 합을 뺌