Notice
Recent Posts
Recent Comments
Link
ยซ   2024/09   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Lennon FE

[๋ฐฑ์ค€ 1966๋ฒˆ] ํ”„๋ฆฐํ„ฐ ํ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs) ๋ณธ๋ฌธ

๐Ÿ”ฅ Algorithm/Baekjoon

[๋ฐฑ์ค€ 1966๋ฒˆ] ํ”„๋ฆฐํ„ฐ ํ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs)

Lennon 2022. 2. 15. 01:48
728x90
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/1966

 

1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋ฆฐํ„ฐ ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ธ์‡„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ธ์‡„ ๋ช…๋ น์„ ๋ฐ›์€ ‘์ˆœ์„œ๋Œ€๋กœ’, ์ฆ‰ ๋จผ์ € ์š”์ฒญ๋œ ๊ฒƒ์„ ๋จผ์ € ์ธ์‡„ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์Œ“์ธ๋‹ค๋ฉด Queue ์ž๋ฃŒ๊ตฌ์กฐ์—

www.acmicpc.net

const fs = require('fs');
const [n, ...input] = fs.readFileSync('dev/stdin').toString().trim().split('\n');
const result = input.map((v) => v.split(' ').map(Number));

let queue;
let answer = [];

while (result.length) {
  queue = [];

  const order = result.shift()[1];
  const paperArr = result.shift().map((v, i) => [v, i]);
  const len = paperArr.length;

  while (queue.length !== len) {
    if (paperArr[0][0] !== Math.max(...paperArr.map((v) => v[0]))) {
      const a = paperArr.shift();
      paperArr.push(a);
    } else {
      const a = paperArr.shift();
      queue.push(a);
    }
  }

  answer.push(queue.map((v) => v[1]).indexOf(order) + 1);
}

console.log(answer.join('\n'));
3
1 0
5
4 2
1 2 3 4                    =>  [[1,0], [5], [4,2], [1,2,3,4], [6,0], [1,1,9,1,1,1]]
6 0                            ex) 2๋ฒˆ์งธ ๊ฒฝ์šฐ
1 1 9 1 1 1                    order = 2
                               paperArr = [[1,0], [2,1], [3,2], [4,2]]

 

์œ„์ฒ˜๋Ÿผ ์ž…๋ ฅ๊ฐ’์„ ์กฐ์ •ํ•˜๊ณ , ์ตœ๋Œ€๊ฐ’์ด ์•„๋‹ˆ๋ฉด ์•ž์—์„œ shiftํ•˜๊ณ  ๋’ค๋กœ ๋‹ค์‹œ push, ์ตœ๋Œ€๊ฐ’์ด๋ฉด queue๋ฐฐ์—ด์— pushํ•œ๋‹ค.

queue๋ฐฐ์—ด์ด ์›๋ณธ ๋ฐฐ์—ด์˜ ๊ธธ์ด์™€ ๊ฐ™์ด์ง€๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  ๋ฐฐ์—ด์˜ 1๋ฒˆ์งธ ์ธ์ž๊ฐ€ order๊ฒƒ์„ ์ฐพ์•„์„œ +1 ํ•ด์ค€ ํ›„ answer๋ฐฐ์—ด์— pushํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋!

728x90
๋ฐ˜์‘ํ˜•
Comments