[HackerRank] Poker Nim

아르당·2024년 6월 7일
0

HackerRank

목록 보기
106/109
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

포커 Nim은 Nim 게임을 간단하게 변형한 2인용 게임이다. 게임의 규칙은 아래와 같다.

  • 게임은 0부터 n - 1까지 인덱스가 되어있는 칩들의 n개 무더기와 함께 시작한다. 각 무더기 i(0 <= i < n)는 c[i]칩을 가지고 있다.
  • 플레이어들은 턴을 번갈아가며 진행한다. 각 턴 동안, 현재 플레이어는 아래와 같은 행동을 해야한다.
    • 1개 또는 여러 개의 칩들을 하나의 무더기에서 제거한다.
    • 1개 또는 여러 개의 칩들을 하나의 무더기에 추가한다.

각 턴마다 최소 1개의 칩을 추가하거나 제거해야 한다.

  • 게임을 한정된 시간 내에 끝내기 위해, 플레이어는 각 i 더미에 칩을 k번 이상 추가할 수 없다.
  • 칩을 마지막으로 제거한 플레이어가 게임에서 이긴다.

n과 k의 값과 각 n 무더기의 칩 수가 주어질때, 첫번째 플레이어와 두번째 플레이어 중에서 이긴 사람을 찾아라. 두 플레이어는 최선의 플레이를 한다.

Constraints

  • 1 <= T <= 100
  • 1 <= n, k <= 100
  • 1 <= c[i] <= 10^9

All Code

public static String pokerNim(int k, List<Integer> c) {

	int result = 0;

	for(int i = 0; i < c.size(); i++){
		result ^= c.get(i);
	}

	if(result != 0){
		return "First";
	}

	return "Second";
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글