jujuwon
시크릿주주
jujuwon
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • 🔠 프로그래밍언어 (35)
      • ☕️ Java (19)
      • 🐠 Python (15)
      • 🍠 Kotlin (1)
    • 🔙 Backend (16)
      • 🌿 Springboot (12)
      • 🐳 Docker (1)
      • ☁️ AWS (3)
    • 💼 CS (12)
      • 📶 Network (12)
    • 🕹 알고리즘 (14)
      • 📑 스터디 (2)
      • 💁🏻‍♂️ 백준 (9)
      • 👨🏼‍🔬 프로그래머스 (3)
    • 📚 Book (8)
      • 🔎 오브젝트 (4)
      • 🧪 TDD (2)
      • 📜 논문 (2)
    • 🔐 보안 (7)
      • 👾 Pwnable (7)
    • 📝 회고 (4)
    • 🧩 etc. (10)
      • ⚠️ issue (2)
      • 💡 꿀팁 (7)
      • ✏️ 끄적 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

hELLO · Designed By 정상우.
jujuwon

시크릿주주

백준 :: 1541번 잃어버린 괄호 (Python)
🕹 알고리즘/💁🏻‍♂️ 백준

백준 :: 1541번 잃어버린 괄호 (Python)

2023. 5. 12. 15:36
반응형

문제 링크

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

접근 방식

+, - 연산만 가능한 상태에서 식의 결과를 최소값으로 만드려면 최대한 큰 값을 빼주면 된다.

즉, - 뒤에 나오는 + 연산을 먼저 해주면 된다.

첫번째 예제로 살펴보면 55-50+40 의 값을 최소로 만드려면 55-(50+40) 으로 괄호를 쳐주면 된다.

그렇다면 - 를 기준으로 식을 자르고, 자른 식들을 먼저 계산한 후 전부 빼주는 식으로 구현해보자 !

풀이 코드

import sys

def input():
    return sys.stdin.readline().rstrip()

line = input().split('-')
numbers = []
for l in line:
    tmp = map(int, l.split('+'))
    numbers.append(sum(tmp))

answer = numbers[0]
for idx in range(1, len(numbers)):
    answer -= numbers[idx]
print(answer)

 

끝 !

728x90
반응형
저작자표시 (새창열림)
    '🕹 알고리즘/💁🏻‍♂️ 백준' 카테고리의 다른 글
    • 백준 :: 1254번 팰린드롬 만들기 (Python)
    • 백준 :: 1202번 보석 도둑 (Python)
    • 백준 :: 10951번 A+B-4 (Java, Python)
    • 백준 :: 1237번 정ㅋ벅ㅋ (Python)
    jujuwon
    jujuwon

    티스토리툴바