아이디어
입력이 매우 복잡하다.
- c : 테스트 케이스의 수
- n, l1, l2, s1, s2
- n : 공격수 좌표의 갯수
- l1, l2 : 패스 난이도
- s1, s2 : 슛 난이도
- 1번 선수가 패스하는 데 걸리는 시간
- 1번 선수가 드리블 하는 데 걸리는 시간
- 2번 선수가 패스하는 데 걸리는 시간
- 2번 선수가 드리블 하는 데 걸리는 시간
입력을 받고 나서는 선수1과 2가 해당 지점에 도착하는 최소 시간을 도출하고 이 중 작은 값을 최종 결과로 사용한다.
풀이
c = int(input())
results = []
while c > 0:
c -= 1
n, l1, l2, s1, s2 = map(int, input().split())
dp = [[0] * n for _ in range(3)]
dp[1][0] = l1
dp[2][0] = l2
p1ps = list(map(int, input().split()))
p1dr = list(map(int, input().split()))
p2ps = list(map(int, input().split()))
p2dr = list(map(int, input().split()))
for i in range(1, n):
dp[1][i] = min(dp[2][i - 1] + p2ps[i - 1], dp[1][i - 1] + p1dr[i - 1])
dp[2][i] = min(dp[1][i - 1] + p1ps[i - 1], dp[2][i - 1] + p2dr[i - 1])
ans = min(dp[1][n - 1] + s1, dp[2][n - 1] + s2)
results.append(ans)
for result in results:
print(result)
'학습 노트 > 알고리즘 (Python)' 카테고리의 다른 글
99클럽 - 거리 두기 게임 (0) | 2024.04.27 |
---|---|
99클럽 - 롤케이크 자르기, 주차 요금 계산 (0) | 2024.04.27 |
99클럽 - 선택의 기로 (0) | 2024.04.24 |
99클럽 - H-Index, 프로세스 (0) | 2024.04.24 |
99클럽 - 제리와 톰1 (0) | 2024.04.22 |