코딩테스트/BOJ

[백준][그리디] 1541.잃어버린 괄호

박소민 2023. 12. 28. 22:59
1541. 잃어버린 괄호

 

 

  • 첫 풀이
    • 런타임 에러
    • eval()에러 발생
      • '1+02' 를 3으로 계산하지 못하고 에러 발생
      • 처음 왼쪽 0만 제외하다보니 + 뒤에있는 수의 0을 제거하지 못함
# 최솟값이니까 - 뒤로 +가 나오는애들은 묶어서 한번에 빼는게 최소
# - 를 기준으로 나누면 +랑 숫자로 붙은애들은 그식 그대로 유지

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

answer = 0
for idx, l in enumerate(line):
    num = eval(l.lstrip('0'))
    if idx == 0:
        answer += num
        continue
    answer -= num

print(answer)

 

 

  • 두번째 풀이
    • 다시 +로 나눈 이후 각 수마다 0제거해서 더해줌
# 최솟값이니까 - 뒤로 +가 나오는애들은 묶어서 한번에 빼는게 최소
# - 를 기준으로 나누면 +랑 숫자로 붙은애들은 그식 그대로 유지

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

answer = 0
for idx, l in enumerate(line):
    tmp = l.split('+')
    num = 0
    for t in tmp:
        num += int(t.lstrip('0'))
    if idx == 0:
        answer += num
        continue
    answer -= num

print(answer)