https://programmers.co.kr/learn/courses/30/lessons/12977?language=java
코딩테스트 연습 - 소수 만들기
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때
programmers.co.kr
for문을 많이쓰면 시간복잡도가 매우 증가한다고 알고 있는데 이 문제는 레벨1이어서 그런진 몰라도 4중 for문까지 허용이 되었다.
아마 nums의 배열 갯수가 50개로 제한이 되어있어서 통과된 것 같다. 사실 제출하면서 시간초과가 뜰까봐 조마조마했다.
(소수 판별)
class Solution
{
public int solution(int[] nums)
{
int cnt = 0;
boolean chk = true;
for(int i=0; i<nums.length; i++)
{
for(int j=i+1; j<nums.length; j++)
{
for(int k=j+1; k<nums.length; k++)
{
int temp = nums[i] + nums[j] + nums[k];
chk = true;
for(int x=2; x*x<=temp; x++)
{
if(temp%x==0)
{
chk = false;
}
}
if(chk)
{
cnt++;
}
}
}
}
return cnt;
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[프로그래머스] 레벨1 크레인 인형뽑기 (0) | 2021.07.25 |
---|---|
[프로그래머스] 레벨1 소수찾기 (0) | 2021.07.23 |
[구름] 레벨3 계단오르기 (0) | 2021.07.22 |
[프로그래머스] 레벨2 올바른 괄호 (0) | 2021.07.22 |
[프로그래머스] 레벨2 카펫 (0) | 2021.07.22 |
댓글