1541 : 잃어버린 괄호

서희찬·2021년 9월 21일
0

백준

목록 보기
40/105

문제

코드

arr = input().split('-')
firstIndexSum =0
minusSum = 0

#첫번째 요소 합구함 
for i in arr[0].split('+'):
    firstIndexSum += int(i)

#이후 마이너스 요소들 합구해서 빼줘야함 
for piece in arr[1:]:
    for splits in piece.split('+') :
        minusSum+=int(splits) 

print(firstIndexSum-minusSum)


해설

예를들어 55-50+40 을입력한다면 초기에 -를 기준으로 input을 스플릿 해줘서 받으면 ['50','50+40'] 이란 리스트가 생성된다.
다만 이 리스트 안의 숫자들은 스트링이니깐 나중에 사용하기 위해서는 int형으로 변경해줘야한다.

이렇게 받고 난 후에 곰곰히 생각해보면 이 배열의 첫번째 요소는 무조건! 플러스이다.
다만 이 플러스가 '50+50' 같을 수도 있으니
첫번째 요소를 for문을 활용해서 +를 기준으로 나눠 주고 난 후에 firstIndexSum에 넣어 합을 구한다.

그 이후에 나눠진 수 들은 무엇이겠는가 !?
그렇다 !
앞에 - 를 기준으로 나눴으니 그 이후의 숫자들은 요소별로 합을 구하여 총합을 구한 후 firstIndexSum 에 빼주면 우리가 원하는 답이 나올것이다.

for piece in arr[1:]:
    for splits in piece.split('+') :
        minusSum+=int(splits) 

그 코드가 이 코드이다.

좀 특이하게 생겼는데 arr[1:]부터 받는 이유는 0번째는 위에서 미리 구해서 고려해줄 필요가 없고 1번째 요소부터의 값들은 마이너스의 값을 가지게 된다.
그런데 그 안의 요소 또한 '40+50' 이런식으로 되있을 수도 있으니 for문을 한번 더 써서 minusSum에 더해준다 !

그리고 출력해주면 끝 !!!

string 요소를 int 로 바꿔서 더 해줘야한다는 것만 조심하면 되는 문제이다 !

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글