๋ฌธ์
์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers์ ๋ฌธ์์ด direction๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ฐฐ์ด numbers์ ์์๋ฅผ direction๋ฐฉํฅ์ผ๋ก ํ ์นธ์ฉ ํ์ ์ํจ ๋ฐฐ์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ์ถ๋ ฅ ์์
[1, 2, 3] | "right" | [3, 1, 2] |
[4, 455, 6, 4, -1, 45, 6] | "left" | [455, 6, 4, -1, 45, 6, 4] |
ํ์ด
์ฒ์์ ๋ฐฉํฅ์ ๋ฐ๋ผ ๋ฐฐ์ด์ด ์ด๋ป๊ฒ ๋ฐ๋๋ ๊ฒ์ธ์ง ์ดํด๋ฅผ ์ ๋ชปํ์๋ค.
๊ทธ๋์ ์ ์ฒด์ ์ผ๋ก for๋ฌธ์ ๋์์ผํ๋ ๊ฑธ๊น ??? ์ถ๋ค๊ฐ ๋ฌธ์ ๋ฅผ ๋ค์ ๋ณด๊ณ ํ์ ๋น์ทํ๊ฒ ๊ตฌ๋ ์๊ฒ ๋์๋ค.
ํ ์นธ์ฉ ํ์ ์ํจ๋ค๋ ๋ง์ ์๋์ ๊ฐ๋ค.
๋ฐฉํฅ์ด ์ค๋ฅธ์ชฝ์ด๋ผ๋ฉด ๊ฐ์ฅ ๋ง์ง๋ง ์์๋ฅผ ๋นผ์ ๋งจ ์์ผ๋ก ๋ฃ์ด์ฃผ๊ณ ,
์ผ์ชฝ์ด๋ผ๋ฉด ๊ฐ์ฅ ๋งจ ์ ์์๋ฅผ ๋นผ์ ๋งจ ๋ค์ ๋ฃ์ด์ฃผ๋ ๊ฒ!
๊ทธ๋ผ ๋ฐฐ์ด์ ๋ฉ์๋์ธ push, pop, shift, unshift๋ฅผ ์ด์ฉํด์ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ค.
function solution(numbers, direction) {
if(direction === 'right'){
const n = numbers.pop();
numbers.unshift(n);
} else{
const n = numbers.shift();
numbers.push(n);
}
return numbers;
}
์ผํญ ์ฐ์ฐ์๋ฅผ ์ฐ๋ฉด ์ด๋ณด๋ค ์งง๊ฒ ์ธ์๋ ์๊ฒ ์ง๋ง ๊ฐ๋ ์ฑ์ ์ํด ์ด๋ ๊ฒ ์จ๋ดค๋ค..
๊นจ๋ฌ์ ๊ฒ
๋ฐฐ์ด์ ๋ฉ์๋๋ค ์ค์ unshift()
๋ shift()
๋ ๋ช ๋ฒ ์จ๋ณด์ง ์์ ์์ง ์์ ์ต์ง ์์๋๋ฐ ์ด๋ฒ์ ํ์ฉํด๋ณด๋ฉฐ ๋ค์ ํ๋ฒ ์๋ ๋ฉ์๋๋ค์ ๋ณต์ตํ๊ฒ ๋์๋ค.
- push() : ๋ฐฐ์ด ๋์ ์์๋ฅผ ์ถ๊ฐ
- pop() : ๋ฐฐ์ด ๋ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๊ทธ ์์๋ฅผ ๋ฐํ
- unshift() : ๋ฐฐ์ด ๋งจ ์์ ์์๋ฅผ ์ถ๊ฐ
- shift() : ๋ฐฐ์ด ๋งจ ์ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๊ทธ ์์๋ฅผ ๋ฐํ
๋ค๋ฅธ ํ์ด
๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ฅผ ๋ณด๋ค๋ณด๋ slice()
๋ฉ์๋๋ก ํผ ๊ฒฝ์ฐ๋ ์์๋ค.
function solution(numbers, direction) {
return direction === "right"
? [numbers[numbers.length - 1], ...numbers.slice(0, numbers.length - 1)]
: [...numbers.slice(1), numbers[0]];
}
๋ฐฉํฅ์ ๋ฐ๋ผ์ ๋งจ ์์ด๋ ๋ค ์์๋ฅผ ๋นผ๊ณ ๋๋จธ์ง๋ฅผ ์๋ผ์ค๋ ์ ๋ต!..
๋ค๋ฅธ ์๊ฐ์ผ๋ก๋ ๋ฌธ์ ๋ฅผ ๋ณด๊ฒ ๋์ด ์ข๋ค. ๐
ํฌ๊ฒ ์ด๋ ค์ด ๋ฌธ์ ๋ ์๋์ง๋ง ๋์ ์ฌ๊ณ ๋ฐฉ์์ ๋ํ๊ธฐ ์ํ ๊ธฐ๋ก.. ๐
'๐ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค : OXํด์ฆ (0) | 2022.12.12 |
---|---|
[Javascript] ํ๋ก๊ทธ๋๋จธ์ค : ์์ฐ (0) | 2022.12.09 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค : ์ต๋น๊ฐ ๊ตฌํ๊ธฐ (2) | 2022.11.15 |
์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ๋ณต์ก๋์ Big-O (3) | 2022.04.29 |
[JS] ์๊ณ ๋ฆฌ์ฆ : ๋๋ฌด ๊ทธ๋ฆฌ๊ธฐ (๋ณ์ฐ๊ธฐ) (0) | 2022.04.18 |
Comment