알고리즘/백준[baekjoon]

[baekjoon] 백준 1541번 : 잃어버린 괄호 (by python 파이썬)

코딩하는이씨 2022. 4. 30. 14:17
728x90
반응형

https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

정답 code

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

num = []

for i in m:
    cnt = 0
    s = i.split("+")
    for j in s:
        cnt += int(j)
    num.append(cnt)
sum = num[0]

for i in range(1,len(num)):
    sum -= num[i]
print(sum)

 

이번 문제는 *문자열.split(‘구분자’) 기능을 잘활용하면 쉽게 해결 할수 있다.

 

split기능

  • 문자열.split() : 함수가 자동으로 띄워쓰기, 엔터 등을 인식해서 문자열을 나눈다.
  • 문자열.split(‘구분자’) : 함수의 파라미터로 특정 구분자를 지정한다.
  • 문자열.split(‘구분자’, 분할횟수) : 두 번째 파라미터인 분할 횟수는 문자열을 자르는 횟수이다.
  • 문자열.split(sep=’구분자’, maxsplit=분할횟수) : 파라미터에 변수를 지정한 형태이다. 바로 위의 함수와 같은 기능을 한다.

 

solution

괄호를 추가해 연산의 최솟값을 만들기 위해선 - 기준으로 괄호를쳐서 큰값을 만들어 빼주면 된다

 

1. 연산 입력시 - 로 분류해 저장 

55-50+40   -> 55, 50+40

2. 각 인덱스속 값에 대해 +로 분류한후 더해 리스트에 저장

 

3. 리스트 첫번째 값에서 부터 리스트 인덱스 값 하나씩 - 실행

 

 

728x90
반응형