스택은 LIFO: Last in First out 방식으로 마지막 들어온 데이터에 가장 먼저 접근한다.
function solution(s){
const answer = [];
for(let i=0; i < s.length; i++){
if(s[i] === "("){
answer.push("(")
}else if(s[i] === ")") {
answer.pop()
}
}
return answer.length === 0 ? true : false;
}
큐는 FIFO: First in First out 방식으로 먼저 들어온 데이터에 가장 먼저 접근한다.
function solution(priorities, location) {
let answer = 0;
// priorities 배열의 각 프로세스에 대해 { priority, index } 형태로 객체 배열을 만듦
// 이렇게 하면 우선순위와 해당 프로세스의 원래 위치를 추적할 수 있음
const queue = priorities.map((priority, index) => ({ priority, index }));
// 큐에 프로세스가 남아 있는 동안 반복
while (queue.length > 0) {
// 큐의 첫 번째 프로세스를 꺼냄
const current = queue.shift();
// 큐에 남아 있는 프로세스 중에서 더 높은 우선순위가 있는지 확인
if (queue.some(item => item.priority > current.priority)) {
// item이 더 크면 current를 queue 맨 뒤로 보냄
queue.push(current);
} else {
// current가 더 크면 카운트
answer++;
// 실행되는 순서가 location과 일치하면 카운트를 반환
if (current.index === location) {
return answer;
}
}
}
}
'JavaScript' 카테고리의 다른 글
[프로그래머스 Lv.1] 로또의 최고 순위와 최저 순위 (0) | 2024.12.12 |
---|---|
[프로그래머스 Lv.1] 실패율 javascript (0) | 2024.12.10 |
[프로그래머스 Lv.1] 옹알이(2) javascript (0) | 2024.12.06 |
[프로그래머스 Lv.1] 덧칠하기 javascript (0) | 2024.12.06 |
[프로그래머스 Lv.1] 소수 만들기 (0) | 2024.12.05 |