[HackerRank] Nimble Game

아르당·2024년 6월 5일
0

HackerRank

목록 보기
104/109
post-thumbnail

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

Problem

두 사람이 Nimble을 플레이하고 있다. 게임의 규칙이다.

  • 게임은 0부터 n - 1까지 n개의 정사각형의 라인으로 진행된다. 각 정사각형 i는 c[i]개의 코인을 포함한다. 이때 i는 0보다 크거나 같고 n보다 작다.
  • 플레이어들은 번갈아가며 진행한다. 각 턴이 진행될 때, 해당 플레이어는 1개의 코인만 정사각형 i에서 제거하고 정사각형 j로 오직 j가 0보다 크거나 같고 i보다 작을 때 옮긴다.
  • 게임은 모든 코인이 정사각형 0에 있고, 아무도 옮기지 못할 때 끝난다. 처음으로 옮기지 못하는 플레이어가 게임에서 지게 된다.

n의 값과 각 정사각형의 코인 수가 주어질때, 게임의 승자가 첫 번째 플레인지 두 번째 플레이어인지 구해라. 두 플레이어는 최선을 다해 플레이를 한다.

Constraints

  • 1 <= n <= 100
  • 0 <= c[i] <= 10^9

All Code

public static String nimbleGame(List<Integer> s) {

	int xor = 0;

	for(int i = 0; i < s.size(); i++){
		if(s.get(i) % 2 == 1){
			xor ^= i;
		}
	}

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

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

0개의 댓글