반응형
○
프린터 큐 Silver3 (40분)
백준 1966번 프린터 큐
포인터를 사용한 큐로 구현 : 69108KB 8ms
히히 제출 답안들 중에 내가 시간 젤 빨라뚬 ^^ 뿌듯
근데 구현 중에 계속 조건 몇개 놓치느라 생각보다 오래걸림,, 40분이라니,, 집중해서 시간만 좀 단축하자..!
구현 방법
중요도 배열 priority 에서 최대값 max를 먼저 구해준다.
priority 의 인덱스 0 부터 탐색
1) 해당 인덱스의 중요도가 max일 경우
- 해당 인덱스의 element를 0으로 변경해준 후 프린트가 되었기 때문에 result += 1 해준다.
- 만약 해당 인덱스가 타겟 인덱스와 동일하다면 반복문을 빠져나오기
- 아니면 max 값을 업데이트 해준다.
2) 해당 인덱스의 중요도가 max 보다 낮을 경우
- 해당 인덱스가 타겟 인덱스(m)와 동일할 경우, 타겟 문서를 뒤로 보내면서 타겟 인덱스를 업데이트해준다.
- 타겟 문서가 아니면 해당 문서를 맨 뒤로 보내고 해당 인덱스는 0으로 변경해준다.
let count = Int(readLine()!)!
for _ in 0..<count {
let input = readLine()!.split(separator:" ").compactMap { Int($0) }
var m = input[1] //타겟 인덱스
var priority = readLine()!.split(separator: " ").compactMap { Int($0) } //중요도 배열
var max = priority.max()
var result = 0
var index = 0
while true {
if priority[index] == max {
priority[index] = 0
result += 1
if index == m { break }
max = priority.max()
} else {
if index == m { m = priority.count }
priority.append(priority[index])
priority[index] = 0
}
index += 1
}
print(result)
}
removeFirst() 사용할 경우
728x90
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Swift 알고리즘] 백준 11659 구간 합 구하기 4 (0) | 2023.04.03 |
---|---|
[Swift 알고리즘] 백준 10211 Maximum Subarray (0) | 2023.04.03 |
[Swift 알고리즘] 백준 11866 요세푸스 문제 (0) | 2023.03.28 |
[Swift 알고리즘] 백준 2164 카드2 (0) | 2023.03.28 |
[Swift 알고리즘] 18258 큐2 - 개빡침🤬 (feat. 더블 스택 큐 구현방법) (0) | 2023.03.27 |