[LeetCode] Nim Game

아르당·3일 전

LeetCode

목록 보기
68/68
post-thumbnail

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

Problem

당신은 아래의 규칙에 따라 친구와 함께 Nim 게임을 진행한다.

  • 처음에 탁자 위에는 돌멩이들이 쌓여 있다.
  • 당신과 친구는 번갈아가며 차례대로 진행하고, 당신이 먼저 시작한다.
  • 각 차례마다, 그 사람은 돌멩이들에서 1개에서 3개의 돌을 제거한다.
  • 마지막 돌을 먼저 없애는 사람이 승리한다.

탁자에 있는 돌의 숫자 n이 주어졌을 때, 당신과 친구가 최적의 플레이를 했을 때, 이긴다면 true를, 그렇지 않다면 false를 반환해라.

Example

#1
Input: n = 4
Output: false
Explanation: 가능한 결과는 다음과 같다.
1. 당신은 돌 1개를 제거한다. 친구는 마지막 돌을 포함한 돌 3개를 제거한다. 친구가 이긴다.
2. 당신은 돌 2개를 제거한다. 친구는 마지막 돌을 포함한 돌 2개를 제거한다. 친구가 이긴다.
3. 당신은 돌 3개를 제거한다. 친구는 마지막 돌을 제거한다. 친구가 이긴다.
모든 경우에, 친구가 이긴다.

#2
Input: n = 1
Output: true

#3
Input: n = 2
Output: true

Constraints

  • 1 <= n <= 2^31 - 1

Solved

class Solution {
    public boolean canWinNim(int n) {
        if(n % 4 != 0) return true;

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

0개의 댓글