Archive/Questions
[programmers/Swift] 프린터
Marco
2022. 5. 11. 20:24
728x90
programmers.co.kr - 코딩테스트연습 - Lv.2 - 스택/큐 - 프린터
코딩테스트 연습 - 프린터
일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린
programmers.co.kr
Constraints :
- 현재 대기목록에는 1개 이상 100개 이하의 문서가 있습니다.
- 인쇄 작업의 중요도는 1~9로 표현하며 숫자가 클수록 중요하다는 뜻입니다.
- location은 0 이상 (현재 대기목록에 있는 작업 수 - 1) 이하의 값을 가지며 대기목록의 가장 앞에 있으면 0, 두 번째에 있으면 1로 표현합니다.
//
// Created by Yongwoo Marco on 2022/05/09.
// Copyright © 2022 Yongwoo Marco Kim. All rights reserved.
//
func solution(_ priorities:[Int], _ location:Int) -> Int {
var queue = priorities.enumerated().map { ($0.element, $0.offset == location) }
var count = 0
while !queue.isEmpty {
let dequeue = queue.removeFirst()
if queue.filter({ $0.0 > dequeue.0 }).count > 0 {
queue.append(dequeue)
} else {
count += 1
guard !dequeue.1 else { break }
}
}
return count
}
print(solution([2, 1, 3, 2], 2)) // 1
print(solution([1, 1, 9, 1, 1, 1], 0)) // 5
How I tried this :
통과하지 않았으면 제일 첫 부분을 없앨것 같다.
편리성을 위해서 location을 지정해주고 반복문을 돌다보니
처음 priorities 수 만큼 반복이 일어나서 그 부분이 시간이 많이 들까봐 걱정했는데
해당 풀이도 다행이 통과되었다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90