만들어주세요
11062번 - 카드 게임
하나 여쭤보고 싶은게 있습니다.
O(N) 으로 풀어보고 싶어 열심히 머리를 싸메는 중인데,
제가 생각한 방법은
2장 이하일 땐, 가장 큰 값을 가져갈 수 있도록 하였고,
그 이외엔 다음의 규칙을 따르도록 하였습니다.
a,b,c,d
라는 카드가 있을 때
a를 가져가면서 b라는 선택지가 생겼을 때 (내가 갖는 이득 +a, 내가 손해 보는 값 - max(b,d))
d를 가져가면서 c라는 선택지가 생겼을 때 (내가 갖는 이득 +c, 내가 손해 보는 값 -max(a,c))
이 둘 중 더 값이 큰 값을 가져 갈 수 있도록 하였습니다.
서로 카드는 한장씩 가져가는 게임이고, 서로 턴제이니, 각각 한 칸 앞의 상황만 고려해도 된다고 판단하였는데, 혹시 놓치고 있는 부분이 있을까요?
감사합니다:)
댓글을 작성하려면 로그인해야 합니다.
pentagon03 2년 전 2
O(N) 풀이가 존재합니다.
N의 범위가 10^6으로 확장된 문제를 새로 만드는 것을 건의드립니다!