반응형

안녕하세요, 츄르 사려고 코딩하는 집사!      코집사입니다.

 

1. 문제

세준이는 양수와 +, -, 그리고 괄호를 가지고 길이가 최대 50인 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.

그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.

괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.

 

2. 입력

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다.

 

3. 출력

첫째 줄에 정답을 출력한다.

 

4. 풀이

example = input().split('-') #1 
result = 0
for i in example[0].split('+') : #2
    result += int(i)  #3

for i in example[1:] : #4
    for j in i.split('+'): #5
        result -= int(j) #6

이 문제는 -가 나올 때까지 다 더하고, 그렇지 않으면 빼는 문제이다.

#1 : -를 기준점으로 입력을 받는다. 55-50+40이 있으면, example에는 '55' '50+40' 으로 입력을 받는다. 

#2 : example 첫 값을 구해줌

#3 : i 에 있는 것들을 다 더해준다. 왜냐하면, -가 나올 때까지는 다 더해주니까.

#4 : 그 다음 1번 리스트부터 반복을 하는데,

#5 : +가 있는 것들을 다 뺴줘서

#6 : result에 계산

 

위의 방식처럼은 안해도 된다.

example[0].split('+')를 하여 다시 빈 리스트에 sum을 하여 결과값을 저장하고, sum들이 저장된 리스트를 다시 for문으로 불러와서 뺴주면 된다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기