let's get IT with DAVINA ๐ป
[๋ฐฑ์ค #10845] ํ ๋ณธ๋ฌธ
โ ๋ฌธ์
์ ์๋ฅผ ์ ์ฅํ๋ ํ๋ฅผ ๊ตฌํํ ๋ค์, ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ช ๋ น์ ์ด ์ฌ์ฏ ๊ฐ์ง์ด๋ค.
- push X: ์ ์ X๋ฅผ ํ์ ๋ฃ๋ ์ฐ์ฐ์ด๋ค.
- pop: ํ์์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- size: ํ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
- empty: ํ๊ฐ ๋น์ด์์ผ๋ฉด 1, ์๋๋ฉด 0์ ์ถ๋ ฅํ๋ค.
- front: ํ์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- back: ํ์ ๊ฐ์ฅ ๋ค์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
๐๏ธ ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง ์์ ๋ช ๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
๐๏ธ ์ถ๋ ฅ
์ถ๋ ฅํด์ผํ๋ ๋ช ๋ น์ด ์ฃผ์ด์ง ๋๋ง๋ค, ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
๐๏ธ ์์ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ
โ๏ธ ๋น๋'s ํ์ด
stack ์ฐ์ต๋ฌธ์ ๋๋ก๋ง ๋ก์ง์ ๋ฐ๋ผ๊ฐ๋ฉด ๋น๊ต์ ์ฝ๊ฒ ํ ์ ์์๋ค!
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const len = Number(input[0]);
const queue=[];
const answer=[];
for(let i=1;i<=len;i++){
let cmd=input[i].split(" ");
switch(cmd[0]){
case "push" : queue.push(cmd[1]);
break;
case "pop" : answer.push(queue.shift() || -1); //stack๊ณผ ๋ฐ๋๋ก ๊ฐ์ฅ ์์๊บผ๋ฅผ ๋นผ์
break;
case "size" : answer.push(queue.length);
break;
case 'empty' : answer.push(queue.length!==0? 0:1);
break;
case 'front': answer.push(queue[0]||-1);
break;
case 'back' : answer.push(queue[queue.length-1]||-1);
break;
}
}
console.log(answer.join("\n"));
'DEV_IN > ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. ๊ณต ๋์ง๊ธฐ (0) | 2023.03.18 |
---|---|
[๋ฐฑ์ค #10866] ๋ฑ (0) | 2023.03.17 |
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. ๋ชจ์ ์ ๊ฑฐ (0) | 2023.03.17 |
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. 2์ฐจ์์ผ๋ก ๋ง๋ค๊ธฐ (0) | 2023.03.17 |
[ํ๋ก๊ทธ๋๋จธ์ค]Lv0. ๊ตฌ์ฌ์ ๋๋๋ ๊ฒฝ์ฐ์ ์ (0) | 2023.03.17 |
Comments