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 |