반응형
문제 설명
주어진 숫자 3개의 수를 더했을 때 소수가 되는 경우의 수를 구하는 문제
풀이과정 ✨
- 반복문을 이용하여 3개의 수를 더했을 때의 수를
number
변수에 할당한다. sosu()
라는 함수명을 가진 함수를 선언하고 로직을 구현한다.sosu
함수는 숫자를 인자로 받아 2 부터 자기자신의 제곱근까지 반복문을 통해 나머지를 구한다.- 2부터 자기자신의 제곱근까지 나누어 보았을 때 나머지가 0이 아니라는 것은 소수가 아님으로
false
를 return 한다. - sosu로 부터 return 받은 Boolean type이 true 라면 변수
answer
에 + 1 을 해준다. - 결과값
answer
를 return 받는다.
Code
function solution(nums) {
let answer = 0;
let max = nums.length;
// 3개의 수를 더했을떄 나오는 모든 경우의 수를 구함
for (let i = 0; i < max -2; i ++) {
let number = 0;
for (let j = i + 1; j < max - 1; j++) {
for (let k = j + 1; k < max; k++) {
number = (nums[i] + nums[j] + nums[k]);
// sosu인지 판별하는 함수를 호출했을 때의 결과값이 true 라면
if (sosu(number)) answer++
}
}
}
function sosu(number) {
for(let i = 2; i <= Math.floor(Math.sqrt(number)); i++) {
// 1 과 자기자신이 아닌 다른 수로 나누었을 떄 나머지가 없다면 소수가 아니다.
if(number % i === 0) return false
}
return true
}
return answer
}
반응형
'Algorithm' 카테고리의 다른 글
[Programmers] LV2 영어끝말잇기 (0) | 2022.05.06 |
---|---|
[Programmers] JadenCase 문자열 만들기 (JavaScript) (0) | 2022.04.27 |
[Programmers] 숫자 문자열과 영단어 (JavaScript) (0) | 2022.04.26 |
[Programmers] 실패율 (JavaScript) (0) | 2022.04.26 |
[Algorithm] 소수구하기 (0) | 2022.01.07 |