프로그래머스
[프로그래머스][Kotlin] 요격 시스템
끝까지 처음처럼
2023. 4. 15. 22:23
728x90
해당 문제는 스케줄링문제에 대해서 알고 있는 분이라면 쉽게 통과 할 수 있는 문제였습니다.
문제를 요약하자면 즉 여러개의 선이 있을 때 그 선들을 수직으로 이을 수 있는 선들의 갯수 중 최소값을 찾는 문제입니다.
해당 문제와 비슷한 문제를 한번 작성했었던 적이 있습니다.
https://want-kotlin-pro.tistory.com/143
[백준][Kotlin]1931번 회의실 배정
해당 문제는 주어진 자료를 끝나는 시간이 빠른 순으로 정렬한 뒤에 끝나는 시간이 같을 경우 시작시간이 빠른 순으로 정렬한 뒤에 반복문을 진행 하면서 현재 진행되고 있는 회의의 끝나는 시
want-kotlin-pro.tistory.com
백준의 회의실 배정과 비슷한 문제 였습니다.
입력값으로 받은 targets를 e의 값이 같을 때는 s가 더 빠른 순으로 아닐 때는 먼저 끝나는 순으로 정렬 을 한뒤에
반복문을 이용하여 answer의 값을 구하면 되는 문제였습니다.
하기는 제가 작성하 코드와 실행 결과 입니다.
class Solution {
fun solution(targets: Array<IntArray>): Int {
var answer: Int = 0
var target = targets.sortedWith(kotlin.Comparator { o1, o2 -> if(o1[1] == o2[1]) o1[0].compareTo(o2[0])
else o1[1].compareTo(o2[1])})
var check = target[0][1]
answer++
for(i in 1 .. target.size-1){
if(target[i][0] >= check){
answer++
check = target[i][1]
}
}
return answer
}
}
테스트 1 〉 | 통과 (16.24ms, 62.1MB) |
테스트 2 〉 | 통과 (23.51ms, 62.5MB) |
테스트 3 〉 | 통과 (17.69ms, 62.4MB) |
테스트 4 〉 | 통과 (17.31ms, 64.2MB) |
테스트 5 〉 | 통과 (36.52ms, 72.2MB) |
테스트 6 〉 | 통과 (117.00ms, 97.2MB) |
테스트 7 〉 | 통과 (410.98ms, 162MB) |
테스트 8 〉 | 통과 (351.16ms, 162MB) |
테스트 9 〉 | 통과 (405.78ms, 161MB) |
테스트 10 〉 | 통과 (327.02ms, 142MB) |
테스트 11 〉 | 통과 (16.33ms, 62.6MB) |