Divisor Game
class Solution {
public boolean divisorGame(int n) {
// 만약에 n = 1 이라면, Alice는 x를 고를 수 없어 패배
if (n == 1) {
return false;
}
// 동적 계획법 배열 만들기
boolean[] dp = new boolean[n+1];
dp[1] = false;
// 2부터 n까지의 dp값 계산
for (int i = 2; i < n + 1; i++) {
// 각 i에 대해 가능한 x 값 확인
for (int x = 1; x < i; x++) {
// i % x는 0이어야 하고 i에서 x를 뺀 값이 false여야
// Alice가 이기는 거임
if (i % x == 0 && !dp[i - x]) {
dp[i] = true;
break;
}
}
}
return dp[n];
}
}
#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL