알고리즘

릿코드 1980. Find Unique Binary String 코틀린

rkrkrr0101 2023. 11. 17. 03:06

문제:같은길이에 현재 배열에 없는이진숫자를 리턴해라

 

풀이:현재 length의 최대십진수(2^n-1)를 구한다음,해당 십진수까지 반복돌리고,해당숫자를 이진수로 바꿔서 배열에 있는지 확인후 없으면 리턴

import kotlin.math.pow

class Solution {
    fun findDifferentBinaryString(nums: Array<String>): String {
        val numList=nums.toList().sorted()
        val arrLength = numList[0].length
        val maxNum = ((2.0).pow(arrLength) - 1).toInt()
        for (i in 0 ..maxNum){
            val toBinaryString = Integer.toBinaryString(i)
            val format = String.format("""%0${arrLength}d""",toBinaryString.toInt())
            if(!numList.contains(format)){
                return format
            }
        }
        return "a"
    }
}