본문 바로가기
개발

20231120 프로그래머스 명예의전당, 2016년 코틀린

by kks950115 2023. 11. 20.
728x90

내 코드는 성능이 좋다고는 자신할 수 없다. 일단 배우는 입장으로써 원하는 값이 나오는가에 중점을 두고 작성한다.

다른 사람들의 풀이를 보면 인라인으로 잘만 돌리는데 필자는 그렇게 하려면 헷갈린다. 내부에서 어떻게 돌아가는지 파악하기가 힘들기 때문에.

 
 	
class Solution {
    fun solution(k: Int, score: IntArray): IntArray {
        var answer: IntArray = intArrayOf()
        var list = mutableListOf<Int>()
        for(i in score.indices){
            list.add(score[i])
            list=list.sortedDescending().take(k).toMutableList()
            answer+=list.minOf { it } 
        }
        return answer
    }
}

 

분명 구글에서는 min()을 하면 최소값이 나온다는데 안나와서 더 찾아보니 minOf { it }를 쓰니까 되었다. 어째서인지는 모르겠으나 생각나면 포스팅하겠다. 

 

 

 

 
 	
class Solution {
    fun solution(a: Int, b: Int): String {
        var answer = ""
        var month = arrayOf(31,29,31,30,31,30,31,31,30,31,30)
        var day = arrayOf("THU","FRI","SAT","SUN","MON","TUE","WED")
        var date = 0
        for(i in 0 until a-1){
            println(i)
            date+=month[i]
        }
        date+=b
        println(date)
        println(date%7)
        answer+= day[date%7]
        
        return answer
    }
}

 

이 문제를 푸는데 무려 3시간이나 걸렸다. 

파라미터 5, 29에 기댓값이 목요일인데 자꾸 수요일이 나오더라. 다른 건 다 잘나오는데 저거 딱 하나만 안되니 귀신이 곡할 노릇.... 로직이 틀린건가해서 보통이라면 나 혼자의 힘으로 푼 다음에 다른 사람의 풀이를 보는데.... 다 풀지도 않고 다른 사람의 풀이를 보았다. 로직같음. map으로 돌리긴 했는데 작동은 같음. 확인하다가 도무지 답을 못찾겠어서 혹시나 오타낸게 있나 하나하나 정답 코드를 ctrl+C , ctrl+V 하던 중 작동하였다.

 

나로서는 정말 상상도 못한 곳에서 문제가 있었는데 바로 var month의 월을 잘못 입력한 것이였다....

설마 저게 틀렸을거라곤 생각도 못했다. 월의 날짜가 31,30이 반복되어서 입력한 것이였는데 실제 달력보니 31이 2번 연속으로 나왔다.로직만 쳐다봤지 날짜가 틀릴거라곤 정말 1도 생각하지 않았기 때문에.... 해당 부분 수정하니 바로 통과. 정말 시간이 아까웠다. 

 

오늘의 교훈: 돌다리도 두들겨보고 건너자

 

 

 

728x90
반응형

'개발' 카테고리의 다른 글

프로그래머스: 옹알이 (2)  (0) 2023.11.23
프로그래머스: 기사단원의 무기  (1) 2023.11.22
maxOrNull, minOrNull. Kotlin  (0) 2023.11.21
코틀린(kotlin) 정리  (0) 2023.10.30
스프링 local에서 오라클 전자지갑 경로  (0) 2023.05.13

댓글