새소식

알고리즘 테스트 ⏲/프로그래머스

[프로그래머스] 프린터 풀이 / JavaScript

  • -
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

작성 코드 (1차 시도 / 통과)

function solution(prs, location) {
    let now = 0
    prs[location] = prs[location].toString()
    while (prs.length) {
        const p = prs.shift()
        if (p < Math.max(...prs)) prs.push(p)
        else {
            if (typeof p === "string") return ++now
            ++now
        }
    }
}

 

구현 로직 (Queue)

1. 요청한 문서만 어떤 것인지를 구분하기 위해 string으로 변환.

2. 우선순위 배열(prs)이 빌 때까지 반복문 순회.

3. prs에서 가장 앞 원소를 pop.

4. 이 값보다 남은 prs 원소들 중 가장 큰 값이 더 크다면 prs에 다시 푸시.

5. 그렇지 않은 경우 출력 순서(now)를 1증가하되, 현재 출력하는 문서가 요청한 문서인 경우(type이 string인 경우) 출력순서 1증가시키고 리턴.

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.