본문 바로가기

study/알고리즘

[알고리즘/백준] 1541번 잃어버린 괄호

1541번 잃어버린 괄호 - https://www.acmicpc.net/problem/1541

(그리디 알고리즘)

 

 

 

접근 방법

 

1번 예제에서 볼 수 있듯이 - 기호가 나온 후 뒤의 값이 크면 클수록 값이 작아진다.

따라서 1번 예제에서 괄호는 55-(50+40)으로 나타난다.

 

그래서 split 함수를 이용하여 - 기준으로 값을 나눈 다음

+가 들어있는 숫자들을 먼저 계산해 준 다음 다 더해준다. 

이때 첫번째 숫자는 무조건 +이기 때문에 마지막에 계산을 따로 해준다.

 

 

 

코드

 

처음에는 +가 들어있는 경우에만 split을 해주었으나 각 값을 int형으로 형변환을 해주어야 해서 모든 값을 for문으로 돌리는 코드로 수정하였다. 그리고 + 기호만 포함되어있을 경우를 위해 if문으로 len(expression)==1의 경우를 나누어 주었다가 그 과정도 아래의 코드로 모두 가능해서 제거하는 것으로 수정하였다.

 

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

for i in range(len(expression)):
    expression[i] = sum(map(int, expression[i].split('+')))
print(-1*sum(expression[1:])+expression[0])

 


 

알고리즘 스터디 - 노션 기록

 

 

알고리즘 스터디

목표 : 1일 1알고리즘 문제 사용 언어 : Python3 / Oracle

mingxoxo.notion.site