반응형
문제
https://www.acmicpc.net/problem/1541
풀이
괄호를 적절히 쳐서 식을 최소로 만들기 위해 어떤 방법을 사용해야 할까요?
모든 수식이 "+"라면 양수를 전부 더해주는 방법 밖에 없습니다.
하지만 "-"가 하나라도 있다면 어떨까요?
10 + 20 - 30 + 40 이란 식이 있다면 괄호를 어떻게 쳐줘야할까요?
10 + 20 - (30 + 40) 처럼 괄호를 쳐주어야 최소 값이 나오겠죠?
10 + 20 - 30 - 40 + 50 - 60 이라면..?
10 + 20 - 30 - (40 + 50) - 60 이겠죠??
괄호를 적절히 치면 "-"식이 나온 이후의 모든 수를 빼는 작업이 가능합니다.
먼저, 식을 입력받고, "-"를 기준으로 문자열을 나누어 줍시다.
그러면 첫번째는 "-"가 나오기 전의 수식들이 들어있을 것이고, 두번째 이후 부터는 "-" 가 나온 이후의 수식일 것입니다.
첫번째 수식에 있는 양수는 전부 더해주고, 두번째 이후에 나오는 양수들을 전부 빼주면 최소값을 구할 수 있습니다.
소스코드
후기
"-" 이후의 수들을 전부 빼주는 아이디어를 떠올렸다면 쉽게 풀 수 있는 문제였습니다.
직접 수식도 적어보고 괄호를 쳐보면서 아이디어를 떠올렸습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 2630 색종이 만들기 (Swift) (0) | 2023.04.11 |
---|---|
[BOJ] 백준 13305 주유소 (Swift) (0) | 2023.04.10 |
[BOJ] 백준 11399 ATM (Swift) (0) | 2023.04.10 |
[BOJ] 백준 1931 회의실 배정 (Swift) (0) | 2023.04.10 |
[BOJ] 백준 11047 동전 0 (Swift) (0) | 2023.04.10 |