๐Ÿ’ป Programming/Algorithm

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ๋ฐฐ์—ด ํšŒ์ „์‹œํ‚ค๊ธฐ

2023. 7. 26. 09:31
๋ชฉ์ฐจ
  1. 1. ๋ฐฐ์—ด ํšŒ์ „์‹œํ‚ค๊ธฐ
  2. 1) ๋ฌธ์ œ ์„ค๋ช…
  3. 2) ์ œํ•œ ์‚ฌํ•ญ
  4. 3) ์ž…์ถœ๋ ฅ ์˜ˆ
  5. 2. ์‚ฌ์šฉ ๋ฉ”์„œ๋“œ - shift(), unshift(), push(), pop()
  6. Array.prototype.shift()
  7. Array.prototype.unshift()
  8. Array.prototype.push()
  9. Array.prototype.pop()
  10. 3. ๋‹ต์•ˆ
  11. 1) ๋‚˜์˜ ํ’€์ด
  12. 2) ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด
https://school.programmers.co.kr/learn/courses/30/lessons/120844
์‚ฌ์šฉ ์–ธ์–ด : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ JavaScript JS

1. ๋ฐฐ์—ด ํšŒ์ „์‹œํ‚ค๊ธฐ

1) ๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers์™€ ๋ฌธ์ž์—ด direction๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด numbers์˜ ์›์†Œ๋ฅผ direction๋ฐฉํ–ฅ์œผ๋กœ ํ•œ ์นธ์”ฉ ํšŒ์ „์‹œํ‚จ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

2) ์ œํ•œ ์‚ฌํ•ญ

  • 3 โ‰ค numbers์˜ ๊ธธ์ด โ‰ค 20
  • direction์€ "left" ์™€ "right" ๋‘˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 

3) ์ž…์ถœ๋ ฅ ์˜ˆ

numbers direction result
[1, 2, 3] "right" [3, 1, 2]
[4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4]

 

 


2. ์‚ฌ์šฉ ๋ฉ”์„œ๋“œ - shift(), unshift(), push(), pop()

Deque(๋ฑ ๋˜๋Š” ๋ฐํฌ) - ์–‘๋ฐฉํ–ฅ ํ๋กœ, ์•ž, ๋’ค ์–‘์ชฝ ๋ฐฉํ–ฅ์—์„œ ์—˜๋ฆฌ๋จผํŠธ(element)๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

Array.prototype.shift()

shift() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์ œ๊ฑฐ๋œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ณ€ํ•˜๊ฒŒ ํ•œ๋‹ค.

const array1 = [1, 2, 3];

const firstElement = array1.shift();

console.log(array1); // [2, 3]

console.log(firstElement); // 1

 

Array.prototype.unshift()

unshift() ๋ฉ”์„œ๋“œ๋Š” ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋ฐฐ์—ด์˜ ๋งจ ์•ž์ชฝ์— ์ถ”๊ฐ€ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const array1 = [1, 2, 3];

console.log(array1.unshift(4, 5)); // 5

console.log(array1); // [4, 5, 1, 2, 3]

 

Array.prototype.push()

push() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ฐฐ์—ด์˜ ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const animals = ['pigs', 'goats', 'sheep'];

const count = animals.push('cows');
console.log(count); // 4
console.log(animals); // ["pigs", "goats", "sheep", "cows"]

animals.push('chickens', 'cats', 'dogs');
console.log(animals); // ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]

 

Array.prototype.pop()

pop() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์—์„œ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];

console.log(plants.pop()); // "tomato"

console.log(plants); // ["broccoli", "cauliflower", "cabbage", "kale"]

 

 


3. ๋‹ต์•ˆ

1) ๋‚˜์˜ ํ’€์ด

function solution(numbers, direction) {
    if (direction === "right") {
        numbers.unshift(numbers.pop())
    } else {
        numbers.shift(numbers.push(numbers[0]))
    }
    return numbers;
}

๋ฉ”์„œ๋“œ๊ฐ€ ์ •๋ง ์•ˆ์™ธ์›Œ์ ธ์„œ ๋ฉฐ์น ์„ ๋ถ™๋“ค๊ณ  ์žˆ์—ˆ๋˜ ๋ฌธ์ œ์ธ๋ฐ, ์œ„์˜ ๋ฐํฌ(deque) ์ด๋ฏธ์ง€๋ฅผ ๋ณด๊ณ  ๊ธˆ๋ฐฉ ์™ธ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋ผ๊ณ  ์ƒ๊ฐํ•˜์˜€์œผ๋‚˜ numbers.shift(numbers.push(numbers[0])) ์€ ๋ญ˜๊นŒ..๐Ÿ˜‚ ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆ˜์ •ํ•˜๋ฉด ๋” ๊น”๋”ํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๋‹ต์•ˆ์ด ๋œ๋‹ค.

 

 

2) ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

function solution(numbers, direction) {
    if (direction === "right") {
        numbers.unshift(numbers.pop())
    } else {
        // ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊น”๋”..!
        // numbers.shift()๊ฐ€ ์–ด์ฐจํ”ผ ๋ฐฐ์—ด์˜ ๋งจ ์ฒ˜์Œ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ด
        numbers.push(numbers.shift())
    }
    return numbers;
}

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ’ป Programming > Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] 369๊ฒŒ์ž„  (0) 2023.08.02
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 1] ์ฝœ๋ผ์ธ  ์ถ”์ธก  (0) 2023.08.02
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ๊ฐ€๊นŒ์šด 1 ์ฐพ๊ธฐ  (0) 2023.07.28
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ํŠน๋ณ„ํ•œ ์ด์ฐจ์› ๋ฐฐ์—ด 2  (0) 2023.07.28
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ์ธ๋ฑ์Šค ๋ฐ”๊พธ๊ธฐ  (0) 2023.06.25
  1. 1. ๋ฐฐ์—ด ํšŒ์ „์‹œํ‚ค๊ธฐ
  2. 1) ๋ฌธ์ œ ์„ค๋ช…
  3. 2) ์ œํ•œ ์‚ฌํ•ญ
  4. 3) ์ž…์ถœ๋ ฅ ์˜ˆ
  5. 2. ์‚ฌ์šฉ ๋ฉ”์„œ๋“œ - shift(), unshift(), push(), pop()
  6. Array.prototype.shift()
  7. Array.prototype.unshift()
  8. Array.prototype.push()
  9. Array.prototype.pop()
  10. 3. ๋‹ต์•ˆ
  11. 1) ๋‚˜์˜ ํ’€์ด
  12. 2) ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด
'๐Ÿ’ป Programming/Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 1] ์ฝœ๋ผ์ธ  ์ถ”์ธก
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ๊ฐ€๊นŒ์šด 1 ์ฐพ๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ํŠน๋ณ„ํ•œ ์ด์ฐจ์› ๋ฐฐ์—ด 2
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ์ธ๋ฑ์Šค ๋ฐ”๊พธ๊ธฐ
Jiwon()
Jiwon()
Jiwon()
jiwondev.log
Jiwon()
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ์ „์ฒด๋ณด๊ธฐ (86)
    • โœ๏ธ What I Learned (52)
      • TIL (41)
      • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (8)
    • ๐Ÿ’ป Programming (31)
      • Algorithm (12)
      • React (1)
      • JS, TS (7)
      • HTML, CSS (7)
      • ๊ธฐํƒ€ (4)
    • ๐Ÿ–Š๏ธ ์ผ๊ธฐ (3)
      • ์ผ์ƒ๊ธฐ๋ก (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์›น๊ฐœ๋ฐœ
  • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…
  • slice
  • nextjs
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • Firebase
  • reduxtoolkit
  • ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„
  • css
  • HTML
  • Til
  • Prisma
  • transition
  • javascript
  • ํ”„๋ก ํŠธ์—”๋“œ
  • ํด๋ฆฐ์ฝ”๋“œ
  • Next.js
  • tailwindcss
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ
  • recoil
  • React-Hook-Form
  • React
  • TypeScript
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ๋ฆฌ์•กํŠธ
  • ChatGPT
  • Redux
  • ์ฝ”๋”ฉ
  • SSR
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
Jiwon()
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ๋ฐฐ์—ด ํšŒ์ „์‹œํ‚ค๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.