반응형
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
내 풀이 (실패)
삼중 for문에다가 전에 ‘소수 찾기’ 문제랑 동일하게 풀이했다.
function solution(nums) {
const answer = [2, 3, 5];
for(let i = 0; i < nums.length - 2; i++) {
for(let j = i+1; j < nums.length - 1; j++) {
for(let k = j+1; k < nums.length; k++) {
const sum = nums[i] + nums[j] + nums[k]
let flag = true;
for(let a = 0; a < Math.sqrt(sum); a++) {
if(sum % answer[a] === 0){
flag = false;
break;
}
}
if(flag) answer.push(sum)
}
}
}
return answer.length - 3;
}
샘플 테케는 통과하는데, 실제 테케는 케테스트로피다
쨔란~ 인생은 19.2점
두 번째 풀이
어김없이 질문하기를 통해 힌트를 얻었다.
현재 코드는 중복 없는 소수를 배열 answer에 넣고 있다.
따라서 중복 있게 넣도록 코드를 수정하면 된다.
const answer = [2, 3, 5];
const isPrime = (num) => {
if(num % 2 === 0) return false;
for(let i = 2; i <= Math.sqrt(num); i++) {
if(num % i === 0){
return false;
}
}
return true;
}
function solution(nums) {
let answer = 0;
for(let i = 0; i < nums.length - 2; i++) {
for(let j = i+1; j < nums.length - 1; j++) {
for(let k = j+1; k < nums.length; k++) {
if(isPrime(nums[i] + nums[j] + nums[k])) {
answer++;
}
}
}
}
return answer;
}
반응형
'CS > 알고리즘' 카테고리의 다른 글
[230427] 과일 장수 (0) | 2023.04.27 |
---|---|
[230424] 프로세스 (0) | 2023.04.24 |
[230423] 연속 부분 수열 합의 개수 (0) | 2023.04.23 |
[230423] 명예의 전당 (1) | 2023.04.23 |
[230422] 기능개발 (0) | 2023.04.22 |