๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ๊ณต๋ถ€/Algorithm

[๋ฐฑ์ค€][Node.js] 1009๋ฒˆ : ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2021. 5. 31.

 

 

 

Algorithm

-  ๋ถ„์‚ฐ์ฒ˜๋ฆฌ -

 


 

๋ฌธ์ œ

์žฌ์šฉ์ด๋Š” ์ตœ์‹  ์ปดํ“จํ„ฐ 10๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์–ด๋Š ๋‚  ์žฌ์šฉ์ด๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ๋  ์ผ์ด ์ƒ๊ฒจ์„œ ๊ฐ ์ปดํ“จํ„ฐ์— 1๋ฒˆ๋ถ€ํ„ฐ 10๋ฒˆ๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , 10๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋“ค์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

 

1๋ฒˆ ๋ฐ์ดํ„ฐ๋Š” 1๋ฒˆ ์ปดํ“จํ„ฐ, 2๋ฒˆ ๋ฐ์ดํ„ฐ๋Š” 2๋ฒˆ ์ปดํ“จํ„ฐ, 3๋ฒˆ ๋ฐ์ดํ„ฐ๋Š” 3๋ฒˆ ์ปดํ“จํ„ฐ, ... ,

10๋ฒˆ ๋ฐ์ดํ„ฐ๋Š” 10๋ฒˆ ์ปดํ“จํ„ฐ, 11๋ฒˆ ๋ฐ์ดํ„ฐ๋Š” 1๋ฒˆ ์ปดํ“จํ„ฐ, 12๋ฒˆ ์ปดํ“จํ„ฐ๋Š” 2๋ฒˆ ์ปดํ“จํ„ฐ, ...

 

์ด ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋Š” ํ•ญ์ƒ a์˜ b์ œ๊ณฑ๊ฐœ์˜ ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง„๋‹ค.

์žฌ์šฉ์ด๋Š” ๋ฌธ๋“ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๋  ์ปดํ“จํ„ฐ์˜ ๋ฒˆํ˜ธ๊ฐ€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค.

์ด๋ฅผ ํ–‰ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ.

 

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ์ปดํ“จํ„ฐ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋ฌธ์ œ ํ’€๊ธฐ

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin")
	.toString()
	.trim()
	.split("\n")
	.map((el) => el.split(" ").map((el) => Number(el)));
input.shift();
let result = [];

for (let i = 0; i < input.length; i++) {
	let rotationNum = [];
	let startNum = 1;
	while (true) {
		let value = String(Number(input[i][0]) ** startNum);
		if (rotationNum.includes(value[value.length - 1])) break;
		rotationNum.push(value[value.length - 1]);
    startNum++;
	}
	if (input[i][1] % rotationNum.length === 0) {
    if(rotationNum[rotationNum.length - 1] === '0') result.push('10');
    else result.push(rotationNum[rotationNum.length - 1]);
  }
	else {
    result.push(rotationNum[(input[i][1] % rotationNum.length) - 1]);
  }
}

console.log(result.join('\n'));

 

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€