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
- PriorityQueue
- GREEDY
- 동적계획법
- foreach
- 프로그래머스
- programmers
- dp
- contentToString
- dynamic programming
- Java
- sortedBy
- 알고리즘
- Recursion
- Main
- solution
- heap
- 2D Array
- hackerrank
- lastIndex
- intarray
- 2020
- indices
- booleanarray
- Queue
- report
- 코틀린
- Kotlin
- Poll
- Developer
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
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'알고리즘 스터디_문제풀이' 카테고리의 다른 글
프로그래머스 힙 이중우선순위큐 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