PS/BOJ

[Python] 1541번 잃어버린 괄호

s_omi 2024. 7. 14. 10:14
728x90
반응형
SMALL

✏️ 문제

 

문제 파악

- 기호를 기준으로 나누어서 나눈 값끼리 다 더해주면 - 기호와 붙었을 때 최대로 빼게 되므로 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:])) # 뒷 배열의 값들의 합을 뺌

 

728x90
반응형
LIST

'PS > BOJ' 카테고리의 다른 글

[Python] 1026번 보물  (2) 2024.07.14
[Python] 1931번 회의실 배정  (0) 2024.07.14
[Python] 2217번 로프  (2) 2024.07.14
[Python] 1789번 수들의 합  (0) 2024.07.14
[Python] 10988번 팰린드롬인지 확인하기  (0) 2024.04.21