티스토리 뷰

https://www.acmicpc.net/problem/16888

 

16888번: 루트 게임

첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 105)가 주어진다. 둘째 줄부터 T개의 줄에 테스트 케이스가 한 줄에 하나씩 주어지며, N(1 ≤ N ≤ 106)이 주어진다.

www.acmicpc.net

 

const input = require('fs').readFileSync('./dev/stdin').toString().trim().split('\n').map(Number);
let dp = [];
let koo = true;
let cube = false;

dp[1] = koo;
//koo1 => koo
dp[2] = cube;
//koo1 cube1 => cube
dp[3] = koo;
//koo1 cube1 koo1 => koo
input.shift();
const MAX = Math.max(...input);
for (let i = 4; i <= MAX; i++) {
	dp[i] = false;
	if (Math.pow(Math.floor(Math.sqrt(i)), 2) == i) {
		dp[i] = true;
		continue;
	}
	for (let j = 1; j * j < i; j++) {
		dp[i] = dp[i] || !dp[i - j * j];
		if (dp[i] == true) break;
	}
}

const answer = [];

input.forEach((v) => {
	if (dp[v]) {
		answer.push('koosaga');
	} else {
		answer.push('cubelover');
	}
});
console.log(answer.join('\n'));
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함