728x90
반응형
https://www.acmicpc.net/problem/14655
문제의 접근 방법
- 획득한 점수가 최대가 되려면 1라운드에서는 최댓값을 구해야하고 2라운드에서는 최솟값을 구해야 함.
- 1라운드: 모두 양수로 만들어주면 됨 / 2라운드: 모두 음수로 만들어주면 됨
(1라운드 동전들의 합 - 2라운드 동전들의 합) = 1,2라운드 동전들에 적힌 숫자의 절댓값들의 합
- 동전을 뒤집을 수 있는 횟수가 무제한이라는 점 유념하기
내가 막혔던 부분
- 연속하는 3개의 동전을 어떤 방식으로 뒤집으면 좋을지에 대한 아이디어에서 막혔음 => but, 동전을 뒤집을 수 있는 횟수가 무제한이기 때문에 꼭 3개씩 짝지어서 뒤집지 않아도 된다는 것을 깨달음!
문제 풀이 방법
동전의 수 N, 첫 번째 라운드의 N개 동전의 배열 first, 두 번째 라운드의 N개 동전의 배열 second를 입력받기 -> 결국 fisrt와 second의 절댓값들의 합이 최대 점수이기 때문에 각 리스트들의 요소를 더한 값을 변수 sum에 누적해서 더해주기 -> 욱제가 이번 게임에서 획득할 점수인 sum을 출력하기!
소스코드
N = int(input()) # 동전의 수
first = list(map(int, input().split())) # 1라운드 동전들
second = list(map(int, input().split())) # 2라운드 동전들
sum = 0
for i in first:
sum += abs(i)
for j in second:
sum += abs(j)
print(sum)
728x90
반응형
'백준 write-up > 정렬 & 그리디' 카테고리의 다른 글
[백준] 모두의 마블 : 12845번 - Python (0) | 2021.09.03 |
---|---|
[백준] 팬덤이 넘쳐흘러 : 17262번 - Python (0) | 2021.09.02 |
[백준] 동전 뒤집기 : 1285번 - Python (0) | 2021.08.25 |
[백준] 토너먼트 만들기 : 2262번 - Python (0) | 2021.08.21 |
[백준] 슬라임 합치기 : 14241번 - Python (0) | 2021.08.21 |