Coding Question

프로그래머스 : 소수 만들기

코딩하는쿼카 2022. 6. 16. 17:40

https://programmers.co.kr/learn/courses/30/lessons/12977

 

코딩테스트 연습 - 소수 만들기

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

programmers.co.kr

 

코딩하는 쿼카 2기 모집 3번문제로 출제했던 문제이다.

프로그래머스 난이도로도 1 이기에, 2,3학년 친구들에게 출제했었다.

 

사실 조합을 코딩할 줄 만 알면 이 문제는 어렵지 않다.

 

문제는 int[]로 주어진 배열에서 3개를 뽑아 그 수들을 더하여 나온 값이 소수인 갯수를 모두 구하는 것이다.

 

 

배열의 길이가 n개라면

그림같이 i, j, k를 각각

i  : 0~n-2

j  : 1~n-1

k : 2~ n 

범위의 3중 for문을 적어주면 간단하다.

 

범위를 저렇게 1씩 깎는 이유는 i가 그림의 5번인덱스에 접근하면 j, k는 자동으로 6 ,7에 접근하는 경우의 수 밖에 없기 때문이다.

(조합이라 [6] [6] [6] 같이 한 원소를 여러번 뽑는 경우의수는 없다.)

 

이렇게 접근한 조합으로 소수만 판별해주는 함수만 따로 작성해주면 된다.

 

 

 

 

통과!

 

실행시간을 최대로 단축해보면 추가로 포스팅하겠다.

 

오늘도 내 지식이 누군가에게 도움이 되었길 바라며,

이만 빠잉!