제일 작은 수 제거하기 코틀린(Kotlin)

2022. 9. 23. 14:00·프로그래머스
728x90
반응형

오늘은 오랜만에 문제를 풀어보게 되었는데 사실 이 문제를 풀면서 또 다시 공식 문서의 중요성을 깨닫게 되었다.

 

문제

문제

사실 굉장히 간단한 문제라고 생각했다.(공식 문서의 중요성은 조금 뒤에 말해보겠다)

 

일반적인 경우, 전달된 배열을 리스트로 바꾸고 최솟값을 제거한 뒤 다시 배열로 만들어 리턴하면 되고,

 

배열의 길이가 1인 경우 곧바로 -1만 들어있는 배열을 만들어 리턴하면 된다.

 

풀이

풀이

최종 정답을 받은 풀이는 위 사진의 코드이다.

 

하지만, 이전 코드는 약간 달랐다. 차이점도 있었고, 에러가 났던 부분도 설명해보겠다.

 

class Solution {
    fun solution(arr: IntArray): IntArray {
        var answer = intArrayOf()
        if (arr.size == 1) answer = intArrayOf(-1)
        else answer = arr.filterNot { it == arr.min() }.toIntArray()
        return answer
    }
}

처음 코드는 이랬다.

 

먼저 에러가 났던 부분은 arr.min()으로 제일 작은 수를 찾는 과정이었다.

 

min()이 unresolved reference라며 에러가 났다.

 

나는 '코틀린 배열 최소값'을 검색했더니 배열에 min()메소드를 사용하면 된다고 해서 했는데 이런 일이 발생한 것이다.

 

그래서 공식 문서 사이트인 https://kotlinlang.org/ 에서 intarray를 검색한 뒤 메소드가 존재하는지 찾아보았다.

 

그랬더니 최신 버전의 코틀린에서는 존재하지 않았다. 다른 분들이 사용한 코틀린과는 버전이 달랐던 모양이다.

 

그래서 어떤 메소드를 사용해야할까를 고민하다 결국 찾아낸 메소드가 minOrNull()이었다.

kotlin minOrNull

이 문제를 해결하고 나니 테스트 케이스 1번이 시간 초과로 통과되지 않는 문제가 있었다.

 

정확한 케이스는 모르겠지만 질문목록 중에 파이썬으로 푸신 분들 중에 나와 같은 상황인 분이 계셨다.

 

답변은 시간 복잡도가 어떻다 하시면서 반복문 실행 전에 최소값을 먼저 구해놓고 반복문을 실행하라고 해주셨다.

 

그래서 나도 최소값을 먼저 구해놓고 filterNot을 사용해 리턴할 배열을 만들어주었다.

728x90
반응형
저작자표시 비영리 (새창열림)

'프로그래머스' 카테고리의 다른 글

짝수는 싫어요 코틀린(Kotlin)  (0) 2022.11.19
문자열 다루기 기본 코틀린(Kotlin)  (0) 2022.09.28
가운데 글자 가져오기 스위프트(Swift)  (0) 2022.09.09
나머지가 1이 되는 수 찾기 스위프트(Swift)  (0) 2022.09.05
시저 암호 코틀린(Kotlin)  (0) 2022.09.03
'프로그래머스' 카테고리의 다른 글
  • 짝수는 싫어요 코틀린(Kotlin)
  • 문자열 다루기 기본 코틀린(Kotlin)
  • 가운데 글자 가져오기 스위프트(Swift)
  • 나머지가 1이 되는 수 찾기 스위프트(Swift)
BonusTrack02.dev
BonusTrack02.dev
공부, 일상
  • BonusTrack02.dev
    BonusTrack02.dev
    BonusTrack02.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (237)
      • Dev experience (85)
        • Android (84)
        • Kotlin (1)
      • Study (62)
        • Kotlin (26)
        • Swift (17)
        • Java (19)
      • 프로그래머스 (68)
      • 주저리주저리 (22)
        • 카페 (5)
        • 음식점 (4)
        • 컨퍼런스 (1)
        • 팝업스토어 (4)
        • 전시회 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    aac
    ios
    코틀린
    databinding
    프로그래머스
    자바
    Kotlin
    programmers
    LiveData
    코루틴
    android
    티스토리챌린지
    CodeLab
    jetpack
    배열
    room
    Material
    coroutines
    오블완
    PCCE
    Java
    getNumericValue
    ViewModel
    안드로이드
    Observer
    SWIFT
    daterangepicker
    스위프트
    MVVM
    viewModelScope
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
BonusTrack02.dev
제일 작은 수 제거하기 코틀린(Kotlin)
상단으로

티스토리툴바