티스토리 뷰

 

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

 

28683번: 피타! 피타! 피타츄!

포켓몬스터를 좋아하는 종우는 포켓몬스터를 연구하다가 포켓몬스터가 상당히 수학적이고 코딩과 밀접한 관련이 있는 게임이라는 것을 알게 되었다. 모든 이동은 유클리드 공간에 평행하게 이

www.acmicpc.net

const n = +require('fs').readFileSync('./dev/stdin').toString();

function isSquareNumber(number) {
	const x = Math.sqrt(number);
	return Math.floor(x) == x;
}

let answer = 0;
if (isSquareNumber(n)) {
	//
	answer = -1;
} else {
	// 나머지 두 변이 모두 정수이어야 함.
	//case 1: n 이 빗변인 경우
	const possible = new Set();
	for (let a = 1; a * a < n; a++) {
		possible.add(a * a);
	}

	for (const p of possible) {
		const a = p;
		possible.delete(p);
		if (n == a * 2) {
			answer++;
		} else if (possible.has(n - a)) {
			possible.delete(n - a);
			answer++;
		}
	}

	//case 2:  n이 빗변이 아닌 경우
	let a = 1;
	while (true) {
		if ((n - (Math.pow(a + 1, 2) - 1)) % (a * 2) == 0) {
			answer++;
		}
		if (Math.pow(a + 1, 2) - 1 > n) {
			break;
		}
		a++;
	}
}
console.log(answer);
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
글 보관함