Skip to content

Latest commit

 

History

History
59 lines (34 loc) · 2.72 KB

quiz_10054.md

File metadata and controls

59 lines (34 loc) · 2.72 KB

카드 배틀은 두명의 플레이어가 서로 카드를 순서대로 배치하고 자동으로 전투하는 게임이다.

이 게임의 진행 방식은 다음과 같다.

  1. 순서와 종류를 정해 카드들을 한 줄로 배치하여 전투를 준비한다.
    • 카드에는 공격력과 생명력이 표시되어 있다.
  2. 준비가 끝나면 상대와 마주하여 가장 왼쪽 카드부터 서로 전투를 시킨다.
    • 전투를 하면 내 카드의 공격력만큼 함께 전투한 상대 카드의 생명력이 감소하고 상대 카드의 공격력만큼 내 카드의 생명력이 감소한다.
    • 생명력이 0 이하가 되면 카드는 사라진다.
  3. 왼쪽부터 오른쪽으로 차례대로 전투를 하고 두 사람 중 한 명이 모든 카드를 잃을 때까지 2를 반복한다.
    • 플레이어 중 한쪽의 카드 갯수가 상대보다 더 많아지면, 짝이 맞지 않는 카드는 상대방의 현재 가장 오른쪽 카드와 전투한다.
  4. 플레이어중 한쪽이 먼저 모든 카드를 잃으면 카드가 남은 플레이어가 승리하며, 두 플레이어가 동시에 카드를 전부 잃으면 비긴다.

카드 배틀 게임의 시뮬레이터를 만들어 어떤 플레이어가 승리할지 맞춰보자.

  • player1 카드의 정보는 player1_cards에 순서대로 주어진다.
  • player2 카드의 정보는 player2_cards에 순서대로 주어진다.
  • 카드의 정보는 [[공격력, 생명력], [공격력, 생명력] . . .]으로 주어진다.

승패가 결정되었을 때 (player1의 남은 카드들의 생명력 총합) - (player2의 남은 카드들의 생명력의 총합)을 반환하도록 solution() 함수를 작성하라.


제한 사항

  • 카드의 개수는 1이상 8이하이다.
  • 카드의 공격력과 생명력은 1이상 50이하의 정수이다.

입출력 예

player1_cards player2_cards return
[[1,1], [2,2], [3,3], [4,4], [5,5]] [[1,1], [2,2], [3,3], [4,4], [5,5]] 0
[[1,7], [5,3], [2,2], [4,50]] [[1,1], [2,2], [3,3], [4,5], [5,5]] 33

입출력 예 설명

1 번 예제

CardBattle_ManimCE_v0.11.0.gif

전투가 모두 진행되고 두 player 모두 남은 카드가 없어 비겼기 때문에 0을 반환한다.

2 번 예제

CardBattle_ManimCE_v0.11.0.gif

전투가 모두 진행되고 (player1의 남은 생명력 총합) - (player2의 남은 생명력 총합) 33을 반환한다.