티스토리 뷰

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

 

17178번: 줄서기

아이즈원의 팬인 시온이는 드디어 티켓팅에 성공하여 콘서트를 갔다. 콘서트장에 일찍 도착한 시온이는 기대하며 입장을 위해 줄을 섰다. 하지만 아이즈원의 인기대로 시온이를 포함한 많은

www.acmicpc.net

 

class Node {
	constructor(item) {
		this.item = item;
		this.prev = null;
	}
}

class Stack {
	constructor() {
		this.top = null;
		this.size = 0;
	}

	push(item) {
		const node = new Node(item);
		node.prev = this.top;
		this.top = node;
		this.size += 1;
	}

	pop() {
		const popItem = this.top;
		this.top = this.top.prev;
		this.size -= 1;
		return popItem.item;
	}
}

const stack = new Stack();
let [[N], ...jool] = require('fs')
	.readFileSync('./dev/stdin')
	.toString()
	.trim()
	.split('\n')
	.map((v) => v.split(' '));
N = +N;

jool = jool.flat().map((v) => {
	const [alpha, num] = v.split('-');
	return alpha.charCodeAt(0) * 1000 + Number(num);
});
const order = [...jool].sort((a, b) => a - b);

while (jool.length > 0 || stack.size > 0) {
	if (jool[0] == order[0]) {
		jool.shift();
		order.shift();
	} else if (stack.size == 0) {
		stack.push(jool.shift());
	} else if (stack.top.item == order[0]) {
		stack.pop();
		order.shift();
	} else if (jool[0] < stack.top.item) {
		stack.push(jool.shift());
	} else if (jool[0] > stack.top.item) {
		console.log('BAD');
		process.exit();
	}
}

console.log('GOOD');
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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 31
글 보관함