[Algorithm] [백준] 1541 - 잃어버린 괄호 (그리디)

myeonji·2022년 3월 13일
0

Algorithm

목록 보기
79/89

ex) 55+10+20-50+40-80

  1. 마이너스로 분류하여 입력 받는다. ['55+10+20', '50+40', '80']
  2. 첫 번째 인덱스는 무조건 플러스로 이루어져 있으므로, for문을 통해 첫 번째 인덱스 안의 55, 10, 20 을 s에 저장한다. (s는 85가 됨)
  3. 두 번째 인덱스부터는 인덱스 사이마다 마이너스로 분리되어 있다는 것이다. 따라서 두 번째 인덱스 내의 값을 s에서 빼준다. (s는 -5)
  4. 세 번째 인덱스도 마찬가지로 s에서 빼준다. (-5 에서 80을 빼면, s는 -85)
string = input().split('-')

s = 0

for i in string[0].split('+'):
    s += int(i)

for i in string[1:]:
    for j in i.split('+'):
        s -= int(j)

print(s)

string[1:] 라고 할 때.. 만약 string 에 인덱스 1이 없으면 범위 에러가 날 줄 알았다.
하지만 인덱스 1이 없으면 그냥 for문을 실행하지 않는다.

첫 번째 인덱스와 나머지 인덱스를 구분해서 풀면 된다 !!

0개의 댓글