Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Util
- dynamic programming
- Developer
- 알고리즘
- indices
- solution
- heap
- contentToString
- foreach
- dp
- 프로그래머스
- sortedBy
- PriorityQueue
- Recursion
- 코틀린
- 동적계획법
- Poll
- hackerrank
- Main
- lastIndex
- 2D Array
- GREEDY
- Kotlin
- report
- 2020
- Queue
- booleanarray
- intarray
- programmers
- Java
Archives
- Today
- Total
Code in
프로그래머스 큐 프린터 with Kotlin 본문
프로그래머스 큐, 프린터 문제입니다.
IntelliJ에서의 풀이입니다.
import java.util.Queue
import java.util.LinkedList
// Kotlin은 JVM: Java Virtual Machine 을 사용하기 때문에 Java의 Queue를 import합니다.
var location: Int = 2
val priorities: IntArray = intArrayOf(2, 1, 3, 2)
fun solution(priorities: IntArray, location: Int): Int {
var answer = 0
data class print(val value: Int, val ff: Boolean)
// data class 를 사용하여 print라는 데이터 형식을 선언합니다.
var tmp: print // print 형식의 tmp 변수를 선언합니다.
var flag: Boolean // Boolean 형식의 flag 변수를 선언합니다.
val waiting: Queue<print> = LinkedList<print>()
// Queue의 특성 중, 가장 끝 부분에서 삭제하고 가장 앞 부분에서 삽입하는 과정상
// Array보다는 LinkedList가 더 좋은 효율을 가진다고 한다.
for (i in priorities.indices){ // .indices는 모든 index들을 의미합니다.
if (i == location) waiting.add(print(priorities[i], true))
// location인 경우 해당 pring의 ff를 true로 하여 표시합니다.
else waiting.add(print(priorities[i], false))
// 그 외는 false로 표시합니다.
}
while (!waiting.isEmpty()){ // 대기열이 존재할 때
flag = false // 프린트를 할지 결정하는 flag입니다.
tmp = waiting.poll() // 대기열에서 1개를 빼줍니다.
for ( i in waiting ) { // 중요도가 높은 프린트가 있는지 확인합니다.
if (tmp.value < i.value) {
flag = true
break
}
}
if (flag){ // 프린트를 하지 않고 뒤로 대기열을 조정합니다.
waiting.add(tmp)
}else{ // 프린트를 하고 location인 프린트일 경우 반복을 멈춥니다.
answer++
if (tmp.ff){
waiting.clear()
}
}
}
return answer
}
fun main() {
print(solution(priorities, location)) // 1
}
URL: https://programmers.co.kr/learn/courses/30/parts/12081
'알고리즘 스터디_문제풀이' 카테고리의 다른 글
프로그래머스 힙 이중우선순위큐 with Kotlin (0) | 2020.08.12 |
---|---|
프로그래머스 힙 디스크 컨트롤러 with Kotlin (0) | 2020.08.12 |
프로그래머스 큐 다리를 지나는 트럭 with Kotlin (0) | 2020.08.11 |
프로그래머스 큐 기능개발 with Kotlin (0) | 2020.08.11 |
프로그래머스 정렬 H-Index with Kotlin (0) | 2020.08.10 |
Comments