[알고리즘] Kotlin -프로그래머스 알고리즘 문제 해설 * 순열검사

2022. 4. 28. 22:44ETC/Algorithm

728x90
반응형

https://programmers.co.kr/learn/courses/18/lessons/1877

 

알고리즘 문제 해설 - 순열 검사

프로그래머스의 모의테스트는 프로그래머스의 시스템에 익숙해지기 위한 테스트이며, 문제 자체는 2018 1ST KAKAO BLIND RECRUITMENT와 전혀 관계없습니다. 다만 모의테스트의 풀이에 대한 요청이 있어

programmers.co.kr

 

문제 설명

더보기

길이가 n인 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는지를 확인하려고 합니다.
1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수 solution을 완성해주세요.

제한사항
  • 배열의 길이는 10만 이하입니다.
  • 배열의 원소는 0 이상 10만 이하인 정수입니다.

입출력 예arrresult
[4, 1, 3, 2] true
[4, 1, 3] false
입출력 예 설명

입출력 예 #1
입력이 [4, 1, 3, 2]가 주어진 경우, 배열의 길이가 4이므로 배열에는 1부터 4까지 숫자가 모두 들어 있어야 합니다. [4, 1, 3, 2]에는 1부터 4까지의 숫자가 모두 들어 있으므로 true를 반환하면 됩니다.

입출력 예 #2
[4, 1, 3]이 주어진 경우, 배열의 길이가 3이므로 배열에는 1부터 3까지 숫자가 모두 들어 있어야 합니다. [4, 1, 3]에는 2가 없고 4가 있으므로 false를 반환하면 됩니다.

 

 

풀이

package com.example.solution

class Solution {
    fun solution(arr: IntArray): Boolean {
        var answer = true

        arr.sort()
        println(arr.contentToString())
        for(i in 0 until arr.size) {
            if(arr[arr.size-1] != arr.size){
                answer = false
            } else {
                if(arr[i] == i+1) {
                    break
                }
            }
        }

        println("anwer = " + answer)
        return answer
    }
}

fun main() {

    val solution = Solution()

    val arr: IntArray = intArrayOf(4, 1, 3, 2)

    println(arr.contentToString())
    println()

    solution.solution(arr)

}

 

728x90
반응형