문제풀이
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
입출력예시
코드
function solution(nums) {
let answer = 0, number=0;
for(let i=0;i<nums.length-2;i++){
for(let j=i+1;j<nums.length-1;j++){
for(let l=j+1;l<nums.length;l++){
number=nums[i]+nums[j]+nums[l];
let count=0;
for(let k=1;k<=number;k++){
if(number%k==0) count++;
}
if(count==2) answer++;
}
}
}
return answer;
}
해석
1. 세수를 합해야했기에 반복몬을 세번이나 썼다.
2. 그렇게 해서 세수가 더해진 모든 경우의 수를 찾고,
3. 그 수들이 1부터 자기까지 나눠지는 것을 찾아 카운터를 센다.
4. 카운트가 2인(자기자신과 1 뿐) 것이 있을때만 answer에 카운트 추가
끝없는 반복문...
반응형
'개발 공부 > 알고리즘 개념+문제풀이' 카테고리의 다른 글
[알고리즘 문제풀이] 키패드 누르기 (0) | 2021.06.19 |
---|---|
[알고리즘 문제풀이]x만큼 간격이 있는 n개의 숫자_프로그래머스1단계 (0) | 2021.06.18 |
[알고리즘 문제풀이] 두 개 뽑아서 더하기 (1) | 2021.06.18 |
[알고리즘 문제풀이]로또의 최고 순위와 최저 순위 (0) | 2021.06.15 |
[알고리즘 문제풀이] 완주하지 못한 선수 with javascript (0) | 2021.06.14 |
댓글