반응형
문제 출처 : www.acmicpc.net/problem/1541
1 . 문제 접근 방식
- 알고리즘 방식은 잘 모르겠다. 식의 결과가 최소가 되기 위해서는 덧셈이 있는 부분은 무조건 먼저 계산해야 될거같다는 생각을 했다. 그리하여 생각해낸 방법이 입력받은 식을 '-'를 기준으로 나눈다. 분리된 식들안에서 '+' 부분이 있는 경우는 그 값을 계산하고 인덱스 0번에 있는 값을 제외한 나머지 값들을 빼면 최소값 구하기 완료!
- 글로 이해가 안될수 있어 예시를 한번 들어보려한다.
1. 50 + 40 - 20 - 40 + 60 + 70 이라는 문자열을 입력받음
2. ["50 + 40", "20", "40", "60 + 70"] 으로 분리
3. ["90", "20", "40", "130"]
4. 90 - 20 - 40 - 130
5. 결과는 -100
2 . 내가 푼 코드
# '-'가 나올때를 기준으로 문자열을 나눈다
A = input().split("-")
answer = 0
# -를 기준으로 나누어진 각 숫자들의 합을 구한다
for i in A[0].split("+"):
answer += int(i)
# 첫번째 인덱스를 제외한 다음 숫자들을 다 빼면 결과값이 나온다
for i in A[1:]:
for j in i.split("+"):
answer -= int(j)
print(answer)
3 . 결과 및 느낀점
- 정답! 처음 접근을 어떤식으로 해야할지 정하는게 정말 어려운거 같다. 그나마 파이썬으로 구현할 경우 다른 언어들에 비해 내 생각대로 구현하는게 조금 더 편하기에 풀수있었던 것 같다.
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 11721번 Python (0) | 2021.04.02 |
---|---|
[Baekjoon/백준] 2750번 Python (0) | 2021.03.31 |
[Baekjoon/백준] 9086번 Python (0) | 2021.03.30 |
[Baekjoon/백준] 1152번 Python (2) | 2021.03.30 |
[Baekjoon] 계획 (0) | 2021.03.30 |