โ ๋ฌธ์
124 ๋๋ผ๊ฐ ์์ต๋๋ค. 124 ๋๋ผ์์๋ 10์ง๋ฒ์ด ์๋ ๋ค์๊ณผ ๊ฐ์ ์์ ๋ค๋ง์ ๊ท์น์ผ๋ก ์๋ฅผ ํํํฉ๋๋ค.
- 124 ๋๋ผ์๋ ์์ฐ์๋ง ์กด์ฌํฉ๋๋ค.
- 124 ๋๋ผ์๋ ๋ชจ๋ ์๋ฅผ ํํํ ๋ 1, 2, 4๋ง ์ฌ์ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด์ 124 ๋๋ผ์์ ์ฌ์ฉํ๋ ์ซ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณํ๋ฉ๋๋ค.
10์ง๋ฒ124 ๋๋ผ10์ง๋ฒ124 ๋๋ผ
1 | 1 | 6 | 14 |
2 | 2 | 7 | 21 |
3 | 4 | 8 | 22 |
4 | 11 | 9 | 24 |
5 | 12 | 10 | 41 |
์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, n์ 124 ๋๋ผ์์ ์ฌ์ฉํ๋ ์ซ์๋ก ๋ฐ๊พผ ๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
- n์ 500,000,000์ดํ์ ์์ฐ์ ์ ๋๋ค.
โ ์ ์ถ๋ ฅ ์
1 | 1 |
2 | 2 |
3 | 4 |
4 | 11 |
โ ์์์ ํ๋ฆ
๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด 1,2,4๊ฐ ๋ฐ๋ณต์ด ๋๋ค. ๊ทธ๋์ ์ฒ์์ ์~ 3์ ๋๋ ์ ๋์ค๋ ๋ชซ์ด๋ ๋๋ ์ ๋จ๋ ๋๋จธ์ง ๊ฐ์ด๋, ๋๊ฐ์ง ์ซ์๋ฅผ ์ด์ฉํด์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค๋ฉด ๋๊ฒ ๊ตฌ๋๋ผ๊ณ ์๊ฐํ๋ค. ๋๋จธ์ง๊ฐ์ด 1์ผ ๋ 1์ด๊ณ , 2์ผ ๋ 2๋ค. ๊ทธ๋ฆฌ๊ณ 0์ผ ๋ 4๋ฅผ ๋ฃ์ผ๋ฉด ๋๋ค! ๊ทธ๊ฑธ ์ด์ฉํด์ for๋ฌธ์ ์ฐ๋ฉด ์ฝ๊ฒ ๋๋ฐ??? ๋ผ๊ณ ์๊ฐํ๋ฉฐ ์ฝ๋๋ฅผ ์ ์ด๋ด๋ ค๊ฐ๊ณ , ์คํจํ๋ค.
๊ทธ์ ๋ชซ๊ณผ ๋๋จธ์ง๊ฐ์ ๋ฐ๋ก ๋ฃ์ด์ ์๋ฅผ ๋ง๋ค์ด๋ผ ์๊ฐ๋ง ํ๋๋ฐ, ๋ค๋ฅธ ๋ถ๋ค์ด ์ ์ ํ์ด๋ฅผ ๋ณด๋ ๋ฌด๋ฆ ํ! ์ด๋ง๋ฅผ ํ! ์น ์ ๋ฐ์ ์์๋ค.... ๋ค๋ค ์ฒ์ฌ์ ๊ฐ๋ด...
โ Solution
function solution(n) {
var answer = '';
const arr=['4','1','2'];
while(n>0){
answer=arr[n%3]+answer;
console.log(answer, n)
n=Math.floor((n-1)/3);
}
return answer;
}
๋๋ ์ ์ป์ ์ ์๋ ๋๋จธ์ง ๊ฐ์ด 1์ผ ๋, 1์ผ๊ณ 2์ผ ๋ 2๋ค. 0์ผ ๋ 4์ด๋ค. ๊ทธ๋์ arr๋ฐฐ์ด์ ์ ๋ ๊ฒ ์ก์์ค๋ค.
for๋ฌธ ๋์ ์ while๋ฌธ์ ์จ์ ์กฐ๊ฑด๋ฌธ์ ๋๋ ค์ค๋ค. while๋ฌธ์ ์ธ์๊ฐ์ด 0์ด ๋ ๋๊น์ง ๋ผ๋ ์กฐ๊ฑด์ ๋ฃ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ทธ ๊ฐ์ ์ฑ์ฐ๊ธฐ๊น์ง ๊ณ์ํด์ ๋ฃจํ๊ฐ ๋๋ค.
โญ for๋ฌธ vs while๋ฌธ
for๋ฌธ์ ๋ฐ๋ณตํ์๊ฐ ์ ํด์ง ๊ฒฝ์ฐ, ์ฃผ๋ก ๋ฐฐ์ด๊ณผ ํจ๊ป ๋ง์ด ์ฌ์ฉํ๋ค.
while๋ฌธ์ ๋ฌดํ ๋ฃจํ๋, ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๊น์ง ๋ฐ๋ณตํด์ผํ๋ ๊ฒฝ์ฐ, ์ฃผ๋ก ํ์ผ์ ์ฝ๊ณ ์ฐ๊ธฐ์ ๋ง์ด ์ฌ์ฉํ๋ค.
'๊ฐ๋ฐ > ๐ฌ ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[codewars] Valid Parentheses (0) | 2022.03.30 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฅ - ์๋ฐ์คํฌ๋ฆฝํธ (0) | 2022.03.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ โ ์๋ฐ์คํฌ๋ฆฝ (0) | 2022.03.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ - ์๋ฐ์คํฌ๋ฆฝํธ (0) | 2022.02.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] 2016๋ โ ์๋ฐ์คํฌ๋ฆฝํธ (0) | 2022.02.19 |
โ ๋ฌธ์
124 ๋๋ผ๊ฐ ์์ต๋๋ค. 124 ๋๋ผ์์๋ 10์ง๋ฒ์ด ์๋ ๋ค์๊ณผ ๊ฐ์ ์์ ๋ค๋ง์ ๊ท์น์ผ๋ก ์๋ฅผ ํํํฉ๋๋ค.
- 124 ๋๋ผ์๋ ์์ฐ์๋ง ์กด์ฌํฉ๋๋ค.
- 124 ๋๋ผ์๋ ๋ชจ๋ ์๋ฅผ ํํํ ๋ 1, 2, 4๋ง ์ฌ์ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด์ 124 ๋๋ผ์์ ์ฌ์ฉํ๋ ์ซ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณํ๋ฉ๋๋ค.
10์ง๋ฒ124 ๋๋ผ10์ง๋ฒ124 ๋๋ผ
1 | 1 | 6 | 14 |
2 | 2 | 7 | 21 |
3 | 4 | 8 | 22 |
4 | 11 | 9 | 24 |
5 | 12 | 10 | 41 |
์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, n์ 124 ๋๋ผ์์ ์ฌ์ฉํ๋ ์ซ์๋ก ๋ฐ๊พผ ๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
- n์ 500,000,000์ดํ์ ์์ฐ์ ์ ๋๋ค.
โ ์ ์ถ๋ ฅ ์
1 | 1 |
2 | 2 |
3 | 4 |
4 | 11 |
โ ์์์ ํ๋ฆ
๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด 1,2,4๊ฐ ๋ฐ๋ณต์ด ๋๋ค. ๊ทธ๋์ ์ฒ์์ ์~ 3์ ๋๋ ์ ๋์ค๋ ๋ชซ์ด๋ ๋๋ ์ ๋จ๋ ๋๋จธ์ง ๊ฐ์ด๋, ๋๊ฐ์ง ์ซ์๋ฅผ ์ด์ฉํด์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค๋ฉด ๋๊ฒ ๊ตฌ๋๋ผ๊ณ ์๊ฐํ๋ค. ๋๋จธ์ง๊ฐ์ด 1์ผ ๋ 1์ด๊ณ , 2์ผ ๋ 2๋ค. ๊ทธ๋ฆฌ๊ณ 0์ผ ๋ 4๋ฅผ ๋ฃ์ผ๋ฉด ๋๋ค! ๊ทธ๊ฑธ ์ด์ฉํด์ for๋ฌธ์ ์ฐ๋ฉด ์ฝ๊ฒ ๋๋ฐ??? ๋ผ๊ณ ์๊ฐํ๋ฉฐ ์ฝ๋๋ฅผ ์ ์ด๋ด๋ ค๊ฐ๊ณ , ์คํจํ๋ค.
๊ทธ์ ๋ชซ๊ณผ ๋๋จธ์ง๊ฐ์ ๋ฐ๋ก ๋ฃ์ด์ ์๋ฅผ ๋ง๋ค์ด๋ผ ์๊ฐ๋ง ํ๋๋ฐ, ๋ค๋ฅธ ๋ถ๋ค์ด ์ ์ ํ์ด๋ฅผ ๋ณด๋ ๋ฌด๋ฆ ํ! ์ด๋ง๋ฅผ ํ! ์น ์ ๋ฐ์ ์์๋ค.... ๋ค๋ค ์ฒ์ฌ์ ๊ฐ๋ด...
โ Solution
function solution(n) {
var answer = '';
const arr=['4','1','2'];
while(n>0){
answer=arr[n%3]+answer;
console.log(answer, n)
n=Math.floor((n-1)/3);
}
return answer;
}
๋๋ ์ ์ป์ ์ ์๋ ๋๋จธ์ง ๊ฐ์ด 1์ผ ๋, 1์ผ๊ณ 2์ผ ๋ 2๋ค. 0์ผ ๋ 4์ด๋ค. ๊ทธ๋์ arr๋ฐฐ์ด์ ์ ๋ ๊ฒ ์ก์์ค๋ค.
for๋ฌธ ๋์ ์ while๋ฌธ์ ์จ์ ์กฐ๊ฑด๋ฌธ์ ๋๋ ค์ค๋ค. while๋ฌธ์ ์ธ์๊ฐ์ด 0์ด ๋ ๋๊น์ง ๋ผ๋ ์กฐ๊ฑด์ ๋ฃ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ทธ ๊ฐ์ ์ฑ์ฐ๊ธฐ๊น์ง ๊ณ์ํด์ ๋ฃจํ๊ฐ ๋๋ค.
โญ for๋ฌธ vs while๋ฌธ
for๋ฌธ์ ๋ฐ๋ณตํ์๊ฐ ์ ํด์ง ๊ฒฝ์ฐ, ์ฃผ๋ก ๋ฐฐ์ด๊ณผ ํจ๊ป ๋ง์ด ์ฌ์ฉํ๋ค.
while๋ฌธ์ ๋ฌดํ ๋ฃจํ๋, ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๊น์ง ๋ฐ๋ณตํด์ผํ๋ ๊ฒฝ์ฐ, ์ฃผ๋ก ํ์ผ์ ์ฝ๊ณ ์ฐ๊ธฐ์ ๋ง์ด ์ฌ์ฉํ๋ค.
'๊ฐ๋ฐ > ๐ฌ ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[codewars] Valid Parentheses (0) | 2022.03.30 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฅ - ์๋ฐ์คํฌ๋ฆฝํธ (0) | 2022.03.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ โ ์๋ฐ์คํฌ๋ฆฝ (0) | 2022.03.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ - ์๋ฐ์คํฌ๋ฆฝํธ (0) | 2022.02.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] 2016๋ โ ์๋ฐ์คํฌ๋ฆฝํธ (0) | 2022.02.19 |