본문 바로가기

분류 전체보기115

[프로그래머스,kotlin] 디스크 컨트롤러 (우선순위 큐로 구현) import java.util.PriorityQueueclass Solution { fun solution(jobs: Array): Int { // Job 데이터 클래스 정의 data class Job(val requestTime: Int, val duration: Int, val id: Int) // 요청 시간 순으로 정렬된 큐 val requestQueue = PriorityQueue(compareBy({ it.requestTime }, { it.id })) // 작업 시간이 짧은 순서로 정렬된 작업 대기 큐 val taskQueue = PriorityQueue(compareBy({ it.duration }, { it.r.. 2025. 1. 12.
[프로그래머스, 코틀린] H-Index class Solution { fun solution(citations: IntArray): Int { // 인용 횟수를 내림차순으로 정렬 val sortedCitations = citations.sortedDescending() // H-Index를 찾기 위한 변수 var hIndex = 0 // 정렬된 배열을 순회하면서 조건에 맞는 최대 h를 찾음 for (i in sortedCitations.indices) { if (sortedCitations[i] >= i + 1) { hIndex = i + 1 } else { break .. 2025. 1. 10.
[프로그래머스] 가장 큰 수 (with kotlin) class Solution { fun solution(numbers: IntArray): String { // 숫자 배열을 문자열로 변환하여 리스트에 저장 var number = mutableListOf() // IntArray의 각 요소를 문자열로 변환하여 리스트에 추가 for (i in 0 until numbers.size) { number.add(numbers[i].toString()) } // 커스텀 정렬: 두 숫자를 이어 붙였을 때 더 큰 결과를 기준으로 정렬 number.sortWith(Comparator { a, b -> (b + a).compareTo(a + .. 2025. 1. 10.
[kotlin 프로그래머스] 큰 수 만들기 (level 2) import java.util.Stackclass Solution{ fun solution(number: String, k: Int): String { var answer = "" var stack = Stack() var removeCount = k for (digit in number) { while (stack.isNotEmpty() && stack.last() 0) { stack.removeAt(stack.size - 1) // 스택의 마지막 숫자 제거 removeCount-- } stack.add(digit) // 현재 숫자를 .. 2025. 1. 8.