프로그래머스/LEVEL 1

소수 만들기

GenieLove! 2021. 3. 7. 20:50
728x90
반응형

Java

import java.lang.*;
class Solution {
    public int solution(int[] nums) {
        int answer = 0;

        for(int a = 0; a < nums.length; a++){//a는 첫번째 수...
            for(int b = a + 1; b < nums.length; b++){//b는 a보다 큰 두번째 수
                for(int c = b + 1; c < nums.length; c++){//c는 b보다 큰 세번째 수
                    int sum = nums[a] + nums[b] + nums[c];//3개의 수를 더한 값
                    boolean tf = true;//소수인지 판별할 변수(소수면 true, 소수가 아니면 false)
                    for(int i = 2; i <= Math.sqrt(sum); i++){
                        if(sum % i == 0){//i로 나눠지면 
                            tf = false;//소수 아님
                            break;//for문 종료
                        }
                    }
                    if(tf)  answer++;//소수가 맞으면 answer 값 더해주기
                }   
            }
        }
        return answer;
    }
}

Python

import math
def solution(nums):
    answer = 0
    
    
    for a in range(0, len(nums)):
        for b in range(a + 1, len(nums)):
            for c in range(b + 1, len(nums)):
                tf = True
                sum = nums[a] + nums[b] + nums[c]
                for i in range(2, int(math.sqrt(sum)) + 1):
                    if(sum % i == 0):
                        tf = False
                        break
                
                if tf:
                    answer += 1
    
    

    return answer

Go

import (
    "math"
)

func solution(nums []int) int {
    answer := 0

    for a := 0; a < len(nums) - 2; a++ {
        for b := a + 1; b < len(nums) - 1; b++ {
            for c := b + 1; c < len(nums); c++ {
                num := nums[a] + nums[b] + nums[c]
                if isPrime(num) {
                    answer++
                }
            }
        }
    }

    return answer
}

func isPrime(num int) bool {
    for i := 2; i <= int(math.Ceil(math.Sqrt(float64(num)))); i++ {
        if (num % i) == 0.0 {
            return false
        }
    }
    return true
}
728x90
반응형

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

로또의 최고 순위와 최저 순위  (0) 2021.05.09
x만큼 간격이 있는 n개의 숫자  (0) 2021.03.07
직사각형 별찍기  (0) 2021.03.07
예산  (0) 2021.03.07
비밀지도  (0) 2021.03.07