[๋ฐฑ์ค][Node.js] 1009๋ฒ : ๋ถ์ฐ์ฒ๋ฆฌ
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'));