728x90
반응형
https://www.acmicpc.net/problem/1541
문제를 풀면서 몰랐던 개념
- for 문 range 자리에 리스트 원소를 split 메소드로 나눈 값들만큼의 반복을 설정할 수 있다.
문제의 접근 방법
- '-' 부호가 나오기 전까지 모두 괄호 안으로 묶어서 더해버리기
- 수식이 주어지면 '+'를 기준으로 먼저 더해주고 남겨진 값들을 빼주면 항상 최솟값을 만들 수 있다.
내가 막혔던 부분
처음 아이디어를 떠올리는 과정에서 막혔다. -> 마이너스 부호를 두고 그 나머지 값들을 묶어 다 더해준 후 빼면 될 것이라고 생각함. (구체적으로 구현하지 못 함)
문제 풀이 방법
수식 N을 입력 받아 '-' 부호를 기준으로 나눠서 저장하기 -> N의 0번째 인덱스를 '+' 부호를 기준으로 나눈 후 그 값들을 정수로 형변환하여 다 더해서 s에 저장하기 -> 그리고 N의 남은 요소들(1번째 요소부터 끝까지)을 가지고 그 값을 '+' 부호를 기준으로 나누어서 정수로 형변환한 후, s에서 다 빼주기 -> 위 과정들을 거쳐 계산된 s 출력해주기
소스코드
N = input().split('-')
s = 0
for i in N[0].split('+'):
s += int(i)
for i in N[1:]:
for j in i.split('+'):
s -= int(j)
print(s)
728x90
반응형
'백준 write-up > 정렬 & 그리디' 카테고리의 다른 글
[백준] 세수정렬 : 2752번 - Python (0) | 2022.06.17 |
---|---|
[백준] 최후의 승자는 누구? : 12760번 - Python (0) | 2022.06.15 |
[백준] 거스름돈 : 5585번 - Python (0) | 2022.06.13 |
[백준] 사탕 : 11256번 - Python (0) | 2022.06.12 |
[백준] 행복 유치원 : 13164번 - Python (0) | 2022.06.10 |