Developing Myself Everyday
article thumbnail

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=kotlin

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

나의 풀이

이 문제는 순열을 이용해야 한다. 다만 numbers에 있는 정수는 한번만 쓰여져야 함으로 add한 뒤에는 substring으로 제거해줬다. 문자가 0으로 시작하는것을 방지하고 중복을 허용하지 않기 위해 Mutableset을 Int로 만들고 순열이 완료가 되면 만들어진 set에 있는 숫자가 소수인지 판별하고 그 숫자를 출력해 주었다.

class Solution {
    var count = 0
    var size = 0
    var answer = mutableSetOf<Int>() 
    
    fun permutation(next : String, numbers: String){
        if(next != "") answer.add(next.toInt())
        for (i in numbers.indices) {
            permutation(next.plus(numbers[i]), numbers.substring(0, i) + numbers.substring(i+1))
        }
    }
    
    fun isPrime(n: Int): Boolean = n > 1 && (2 until n).none { n % it == 0 }
    
    fun solution(numbers: String): Int {
        permutation("", numbers)
        answer.map{ if(isPrime(it)) count++ }
        
        return count
    }
}

'프로그래머스 - kotlin > LEVEL 2' 카테고리의 다른 글

괄호 변환  (0) 2022.12.03
귤 고르기  (0) 2022.11.29
가장 큰 수  (0) 2022.11.29
모음 사전  (0) 2022.11.25
피로도  (0) 2022.11.24
profile

Developing Myself Everyday

@배준형

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!