728x90
1. 링크
https://www.acmicpc.net/problem/1541
2. 난이도(solved.ac 참고)
실버2
3. 풀이
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://www.acmicpc.net/problem/1541 | |
a = input().split('-') | |
s = 0 | |
for i in a[0].split('+'): | |
s += int(i) | |
for i in a[1:]: | |
new_list = i.split('+') | |
for j in new_list: | |
s -= int(j) | |
print(s) |
숫자 외에 연산자가 들어간 input값 처리는 거의 해본 기억이 없어서 좀 헤맸다.
여기서 내가 생각하는 키포인트는, -를 기준으로 나누면 + 연산자를 끼고 있는 숫자들은 전부 리스트의 원소로 따로 들어가게 된다는 점이다. 여기에서 최소값을 만들려면 + 연산자로 묶여있는 두 수는 무조건 빼야 한다. -를 기준으로 split 메소드를 사용해 나눈 것이므로 무조건 빼주더라도 출력을 구하는 데 지장이 없다.
이제 문제는, ['50+40']의 형태로 되어있는 리스트를 [50, 40]으로 쪼개는 방법이었는데, 이 또한 +를 기준으로 split을 한 결과를 새로운 리스트에 저장한 뒤, 그 리스트를 돌면서 int로 바꾼 뒤 빼주는 방식으로 전개하였다.
'CS > 알고리즘' 카테고리의 다른 글
[백준] 아이디 색상 변경하기 (0) | 2021.08.20 |
---|---|
[Python] BOJ(백준) 11279번 - 최대 힙 (0) | 2021.08.18 |
[Python] BOJ(백준) 1976번 - 여행 가자 (0) | 2021.08.13 |
[Python] BOJ(백준) 1647번 - 도시 분할 계획 (0) | 2021.08.12 |
[Python] BOJ(백준) 22846번 - 인증된 쉬운 게임 (0) | 2021.08.12 |