티스토리 뷰

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

 

29717번: 슬라임 잡고 레벨 업!

각 테스트 케이스마다, 슬라임을 $N$마리 처치 후 브실이의 레벨이 얼마나 될지를 한 줄에 하나씩 출력한다.

www.acmicpc.net

const [T, ...tc] = require('fs').readFileSync('./dev/stdin').toString().trim().split('\n').map(Number);

// level
// 레벨이 1 이면 2. 2면 4. 3이면 6. 4면 8
// exp
// monster

const answer = [];
tc.forEach((t) => {
	t = BigInt(t);
	const exp = t * (t + BigInt(1));
	let left = 1;
	let right = 1000000000;
	let level;
	while (left <= right) {
		level = Math.floor((left + right) / 2);
		if (BigInt(level) * BigInt(level + 1) * 2n > exp) {
			right = level - 1;
		} else {
			left = level + 1;
		}
	}
	answer.push(left);
});

console.log(answer.join('\n'));
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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 31
글 보관함