프로그래머스

[프로그래머스_Kotlin] 소수 만들기

내손은개발 🐾 2024. 2. 8. 18:19
 

프로그래머스

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

programmers.co.kr

 

문제

  • 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
  • nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.

입출력 예

 

 

 

풀이

class Solution {
    fun solution(nums: IntArray): Int {
        var answer = 0
        var cnt = 0

        for (i in 0..nums.size - 3) {
            for (j in i + 1..nums.size - 2) {
                for (k in j + 1..nums.size - 1) {
                    if (isPrime(nums[i] + nums[j] + nums[k])) answer += 1
                }
            }
        }
        return answer
    }

    private fun isPrime(n: Int): Boolean {
        for (i in 2 until n) {
            if (n % i == 0) {
                return false
            }
        }
        return true
    }
}

 

3중 for문 크기 주는 거에서 시간이 많이 소요ㅜ

오늘 집중이 잘 안 되네,,, 내일부터 휴일이라 그런가,,