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] 같이 한 원소를 여러번 뽑는 경우의수는 없다.)
이렇게 접근한 조합으로 소수만 판별해주는 함수만 따로 작성해주면 된다.
통과!
실행시간을 최대로 단축해보면 추가로 포스팅하겠다.
오늘도 내 지식이 누군가에게 도움이 되었길 바라며,
이만 빠잉!