โถ ๋ฌธ์ : https://programmers.co.kr/learn/courses/30/lessons/12899
์ฝ๋ฉํ ์คํธ ์ฐ์ต - 124 ๋๋ผ์ ์ซ์
programmers.co.kr
โถ ์ฝ๋ :
function solution(n) {
const nums = ['4', '1', '2'];
let answer = '';
while(n > 0){
const remainder = n % 3;
if(remainder === 0){
n = n/3 - 1;
}else{
n = Math.floor(n / 3);
}
answer = nums[remainder] + answer;
}
return answer;
}
โถ ๋ฌธ์ ํ์ด :
- ๋ฌธ์ ํ์ด๊ฐ ์๊ฐ๋ณด๋ค ์ฝ์ง ์์๋ค. ํนํ 3์ง์์ ๊ฒฝ์ฐ ์๋ฆฟ์ ์ฆ๊ฐ์ ์ํ ์ฒ๋ฆฌ๊ฐ ๊ฐ์ฅ ์ฝ์ง ์์ ๋ง์ ๋ธ๋ก๊ทธ๋ค์ ์ฐธ๊ณ ํ์ฌ ์ฝ๊ณ ์ดํดํ๋ค.
๋จผ์ ์ฌ์ง์ ํ์ธํด๋ณด์
์์ ์์์์ ์ผ์ชฝ์ 3์ง์๋ก ํํํ์๋์ด๊ณ , ์ค๋ฅธ์ชฝ์ ๋ฌธ์ ํ์ด์ ์ฌ์ฉํ ๋ฐฉ์์ ์์ฑํ๋ค.
1. ์ฒซ๋ฒ์งธ ์์์์ 3์ง์์ ๊ฒฝ์ฐ 3์ผ๋ก ๋๋์์๋ ๋ชซ์ด 1, ๋๋จธ์ง๊ฐ 0์ด๊ฒ ๋๋ค. ์ด๋ 3์ง์ ์ซ์๋ '10'์ด ๋๋ค. ์ด ๊ฒฝ์ฐ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ฏ๋ก ๋งจ๋ ์ซ์๋ฅผ 0์ผ๋ก ๋ฐ๊พธ๊ณ ์์ผ๋ก 1์ ๋๊ฒจ 3์ ํํํ๊ณ ์๋ค. ํ์ง๋ง ์ฃผ์ด์ง ๋ฌธ์ ์์๋ 0์ด ์๋ '4'๋ก ํํํ๊ณ ์์ผ๋ฉฐ, ์ด๋ ์๋ฆฌ์ฌ๋ฆผ์ด ๋ฐ์ํ๋ฉด ์๋๋ค. ์ด ๋ฐฉ์์ ์ฐฉ์ํ์ฌ ๋ชซ์ ๊ฐ์ง๊ณ ์๋ 1์ ๋๋จธ์ง์ชฝ 3์ผ๋ก ๋๊ฒจ์ค ๋ฐฉ์์ด ์ค๋ฅธ์ชฝ ๋ฐฉ์์ด๋ค. ์ฆ, ๋ชซ์์ 1์ ๊ฐํ๊ณ ๋๋จธ์ง์ 3์ ๋ํด์ค ๋ฐฉ์์ด๋ค. ์ด๋ ๊ฒ ๋์์ ๊ฒฝ์ฐ ๋๋จธ์ง๊ฐ 3์ผ๋๋ '4'๋ก ํํํด์ฃผ๋ฉด ์ข์ธก์ ๊ฒฝ์ฐ 3์ง์ ํํ๋ฒ์ '10'์ด์ง๋ง, ์ฐ์ธก์ ๊ฒฝ์ฐ 124๋๋ผ์ ํํ๋ฐฉ์๋๋ก '4'๋ก ํํํ ์ ์๋ค. ๋ค์ ์์๋ค๋ ํ์ธํด๋ณด์.
2. ๋๋ฒ์งธ ์์์์๋ 6์ 3์ผ๋ก ๋๋์ด 3์ง์ '20'์ผ๋ก ํํํ๊ณ ์๋ค. ํ์ง๋ง ์ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก 0์ผ๋ก ํํ์ ํ ๊ฒฝ์ฐ 1์๋ฆฌ๊ฐ ์ฆ๊ฐํด์ ํํ์ด ๋๋ค. ์ฆ, ์์ ์ฒซ๋ฒ์งธ ์์์ ์๋ฆฟ์๋ ๊ฐ์ง๋ง ๋๋ฒ์งธ ์์์์์ '20'์ ์ด๋ฏธ '10'์์ ์ผ์ด๋ ์๋ฆฟ์ ์ฆ๊ฐ๋ฅผ ํฌํจํ๊ณ ์๋ค๋ ๋ป์ด๊ณ , ์ด๋ฌํ ์๋ฆฟ์ ์ฆ๊ฐ๋ฅผ ์์ ๊ธฐ ์ํด ๋ชซ์์ 1์ ๊ฐํ๊ณ , ๋๋จธ์ง์ 3์ ์ถ๊ฐํด ์์์ ์์ฑํ ` 1 ... 3 `์ผ๋ก `๋ชซ ... ๋๋จธ์ง` ๊ฐ ๋์ค๊ฒ ๋๊ณ , 3์ 4๋ก ํํํ๋ฉด 124๋๋ผ์ ํํ ๋ฐฉ์์ผ๋ก 10์ง์ 6์ '14'๋ก ํํํ ์ ์๋ค.
(๋ค์๊ฒ๋ค๋ ๋น์ทํ๊ฒ ํด๋ณด์)
=> ๋ค์ ๋์ค๋ ์์ ๋ค๋ ํด๋ณด๋ฉด ์๊ฒ ์ง๋ง 3์ง์์์๋ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง ๋๋ง๋ค ๊ทธ ์๋ฆฌ๋ฅผ 0์ผ๋ก ์ฑ์ฐ๊ณ ํ์๋ฆฟ์๋ฅผ ์ฆ๊ฐ์ํด์ ํ์ ํ ์ ์๋ค. ์ฆ, 3์ง์๋ก ๋ณํํ๋ ๊ณผ์ ์์ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋์ฌ๋๋ง๋ค ์๋ฆฟ์๊ฐ ์ฆ๊ฐํ๋ค๋ ๋ง์ด๊ณ , ์ด๋ฅผ ๋ง๊ธฐ ์ํด์ ๋ชซ์์ 1์ ๊ฐํ๊ณ ๋๋จธ์ง์ 3์ ์ถ๊ฐํ๋ค๋ ๋ฐฉ์์ผ๋ก ์๊ฐํด์ผํ๋ค๋ ๊ฒ์ด๋ค.(๋๋จธ์ง๊ฐ 3์ธ ๊ฒ๋ค์ ๊ฒฐ๊ตญ 124๋๋ผ์ ๋ฐฉ์์ ์ํด 4๋ก ํํ๋ ๊ฒ์ด๊ณ ใ ใ )
๋ฐ๋ผ์ ์ ์ฒด์ ์ธ ๋์์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1. ๋งค๊ฐ๋ณ์๋ก ๋ค์ด์จ ๊ฐ n์ 3์ผ๋ก ๋๋๋ ์์ ์ ๋ฐ๋ณตํ๋ค.
2. ์ด๋ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง ๋๋ ๋๋ ๊ฒฐ๊ณผ ๋ชซ์์ 1์ ๋นผ์ฃผ๊ณ , ๋๋จธ์ง์ 3์ ์ถ๊ฐ์ํจ๋ค.
2 - 1. ๋๋จธ์ง์ 3์ ์ถ๊ฐ์ํค๋ ๊ณผ์ ์ ๊ฒฐ๊ตญ ํด๋นํ๋ ๋ฌธ์์ด ๋ถ๋ถ์ 4๋ก ์นํํ๋ฉด ๋๋ ๊ฒ์ด๋๊น ์์ ์ฝ๋์ ๋์ ์๋๋๋ก answer ๋ฌธ์์ด์ ๋ท๋ถ๋ถ์ ๋ฌธ์ '4' ๋ฅผ ์ถ๊ฐ์์ผ์ค๋ค.
2 - 2. 3์ผ๋ก ๋๋์ด ๋จ์ด์ง์ง ์๋ ๊ฒฝ์ฐ๋ 1 ํน์ 2๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๊ฒ ์ง? (124๋๋ผ์ ๊ท์น๋๋ก)
3. ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ ๋ง์ง๋ง์ n์ด 0 ์ด๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๋๋ก while ์ ์ ์ด๋ฌธ์ n > 0 ์ผ๋ก ์์ฑํด์ค๋ค.
'๐ฏ CodingTest > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๋ฉ์ฉกํ ์ฌ๊ฐํ (0) | 2022.06.11 |
---|---|
[Programmers] (Javascript) ์์ ๊ฒ์ (2) | 2022.05.02 |
[Programmers] (Javascript) ๋ฉ๋ด ๋ฆฌ๋ด์ผ (0) | 2022.04.28 |
[Programmers] (Javascript) ์ถ์ ํธ๋ํฝ (0) | 2022.04.26 |
[Programmers] (Javascript) ํํ (0) | 2022.04.25 |