๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Coding Interview University] ์Šคํƒ : ์ด๋ก  ๋ฐ ๊ตฌํ˜„ ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ์ปดํ“จํ„ฐ ๊ตฌ์กฐ/Computer Science

[Coding Interview University] ์Šคํƒ : ์ด๋ก  ๋ฐ ๊ตฌํ˜„

์ง•์ง•์•ŒํŒŒ์นด 2023. 7. 1. 15:01
728x90
๋ฐ˜์‘ํ˜•

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” ์ฝ”๋”ฉ์ธํ„ฐ๋ทฐ๋Œ€ํ•™ ๋‹˜์˜ Git๊ณผ ์„œ์ ์„ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค :-)>

 

๐Ÿซง ์Šคํƒ

: ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์•„ ์˜ฌ๋ฆฐ๋‹ค

: LIFO (Last In First Out) ์— ๋”ฐ๋ผ ์ž๋ฃŒ๋ฅผ ๋ฐฐ์—ดํ•œ๋‹ค

: ๊ฐ€์žฅ ์ตœ๊ทผ์— ์Šคํƒ์— ์ถ”๊ฐ€ํ•œ ํ•ญ๋ชฉ์ด ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋  ํ•ญ๋ชฉ

: ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์Šคํƒ์€ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— i ๋ฒˆ์งธ ํ•ญ๋ชฉ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ

: ์Šคํƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ์—ฐ์‚ฐ์€ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ๊ฐ€๋Šฅํ•˜๋‹ค

 

๐Ÿซง ์Šคํƒ์ด ์œ ์šฉํ•  ๊ฒฝ์šฐ

: ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•  ๋•Œ ์œ ์šฉํ•จ

: ์žฌ๊ท€์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์Šคํƒ์— ๋„ฃ์–ด ์ฃผ๊ณ , ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ๋น ์ ธ ๋‚˜์™€ ํ‡ด๊ฐ ๊ฒ€์ƒ‰(backtrack) ํ•  ๋•Œ๋Š” ์Šคํƒ์— ๋„ฃ์–ด ์ฃผ์—ˆ๋˜ ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋นผ ์ค˜์•ผ ํ•œ๋‹ค

: ์ผ๋ จ์˜ ํ–‰์œ„๋ฅผ ์ง๊ด€์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด ์ค€๋‹ค

: ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐ˜๋ณต์  ํ˜•ํƒœ (iterative) ๋ฅผ ํ†ตํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ

 

๐Ÿซง ์Šคํƒ ๊ตฌํ˜„ํ•˜๊ธฐ

function Stack(arr = Array()) {
  this.arr = arr;
}

let stk = new Stack();
let stk2 = new Stack(['test', 'test2']);

โžก๏ธ isEmpty() : ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธ(๋ฐ˜ํ™˜๊ฐ’ t/f)

Stack.prototype.isEmpty = function(){
  return this.arr.length === 0;
}

โžก๏ธ push(data) : ์Šคํƒ์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ

Stack.prototype.push = function (data) {
  this.arr.push(data);
};

โžก๏ธ pop() : ์Šคํƒ ๋งจ ์œ„์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ

Stack.prototype.pop = function () {
  return this.arr.pop();
};

โžก๏ธ top() : ์Šคํƒ ๋งจ ์œ„์˜ ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ

Stack.prototype.top = function () {
  return this.arr.slice(-1);
};

โžก๏ธ size() : ์Šคํƒ์˜ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ

Stack.prototype.size = function () {
  return this.arr.length;
};
728x90
๋ฐ˜์‘ํ˜•
Comments