[JavaScript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ๋ฐฐ์—ด ํšŒ์ „ ์‹œํ‚ค๊ธฐ
728x90

๋ฌธ์ œ

์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด 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]];
}

๋ฐฉํ–ฅ์— ๋”ฐ๋ผ์„œ ๋งจ ์•ž์ด๋‚˜ ๋’ค ์š”์†Œ๋ฅผ ๋นผ๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ์ž˜๋ผ์˜ค๋Š” ์ „๋žต!..
๋‹ค๋ฅธ ์‹œ๊ฐ์œผ๋กœ๋„ ๋ฌธ์ œ๋ฅผ ๋ณด๊ฒŒ ๋˜์–ด ์ข‹๋‹ค. ๐Ÿ™‚

 

 

 

ํฌ๊ฒŒ ์–ด๋ ค์šด ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋‚˜์˜ ์‚ฌ๊ณ ๋ฐฉ์‹์„ ๋„“ํžˆ๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก.. ๐Ÿ˜‡

 

 

 

728x90