3์ง๋ฒ ๋ค์ง๊ธฐ
์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. n์ 3์ง๋ฒ ์์์ ์๋ค๋ก ๋ค์ง์ ํ, ์ด๋ฅผ ๋ค์ 10์ง๋ฒ์ผ๋ก ํํํ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
* n์ 1 ์ด์ 100,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
n | result |
---|---|
45 | 7 |
125 | 229 |
์ ์ถ๋ ฅ ์ #1
n(10์ง๋ฒ) | n(3์ง๋ฒ) | ์๋ค ๋ฐ์ (3์ง๋ฒ) | 10์ง๋ฒ์ผ๋ก ํํ |
---|---|---|---|
45 | 1200 | 0021 | 7 |
* ๋ฐ๋ผ์ 7์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
n(10์ง๋ฒ) | n(3์ง๋ฒ) | ์๋ค ๋ฐ์ (3์ง๋ฒ) | 10์ง๋ฒ์ผ๋ก ํํ |
---|---|---|---|
125 | 11122 | 22111 | 229 |
* ๋ฐ๋ผ์ 229๋ฅผ return ํด์ผ ํฉ๋๋ค.
๋ฌธ์ ํ์ด
n์ด 0์ด ์๋ ๊ฒฝ์ฐ unshift๋ฅผ ํตํด n์ 3์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ์ answer์ ์ ์ฅ์ํค๊ณ n์๋ n์ 3์ผ๋ก ๋๋ ๊ฐ์ ๋ฐ์ฌ๋ฆผ๊ฐ์ ์ ์ฅํ๋ค. ๋ง์ง๋ง์ผ๋ก๋ reduce์ Math.pow๋ฅผ ์ ์ ํ ํ์ฉํ์ฌ n์ 3์ง๋ฒ, ์๋ค๋ฐ์ 3์ง๋ฒ, 10์ง๋ฒ ํํ ๋ฑ์ ํ๋ค.
function solution(n) {
const answer = [];
while(n !== 0) {
answer.unshift(n % 3);
n = Math.floor(n/3);
}
return answer.reduce((acc,v,i) => acc + (v * Math.pow(3, i)),0);
}
๋ค๋ฅธ ํ์ด ๋ฐฉ์
parseInt์ toString, reverse(), join์ ํตํด 1์ค๋ก ๊ฐ๋จํ ํ์ด๋ด๋ ๋ฐฉ์๋ ์กด์ฌํ๋ค.
const solution = (n) => {
return parseInt([...n.toString(3)].reverse().join(""), 3);
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (1) | 2022.11.21 |
---|---|
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ๋ด์ (ๅ ง็ฉ, inner product) (1) | 2022.11.21 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (2) | 2022.11.17 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ํ์ค๋ ์ (1) | 2022.11.16 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ํ๋ ฌ์ ๋ง์ (1) | 2022.11.16 |
๋๊ธ