프로그래머스 소수 만들기

2025. 7. 1. 19:49·코딩테스트/프로그래머스

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

문제 풀이

nums에서 3개의 수를 더한 값이 소수인지 판단하는 문제로

1. dfs를 이용해 3개를 선택하는 로직을 작성 -> depth가 3인 경우 3개의 숫자가 선택된 것

2. sum은 3개의 숫자를 선택하여 더한 값으로 isPrime함수를 통해 소수인지 판단, 이후 더이상 진행하지 못하도록 return

3. isPrime함수는 홀수인 경우 아래와 같은 로직을 통해 소수를 검사

for (let i = 3; i <= Math.sqrt(number); i += 2) {
    if (number % i === 0) return false;
}

소수를 구하기위해 검사할 값(number)의 루트 값 까지 계산하면 됨, 또한 짝수로 검사하는건 의미가 없으므로 홀수만 검사되도록 + 2씩 증가


function solution(nums) {
    var answer = 0;
    
    function isPrime(number) {
        if (number % 2 === 0) return false;
        for (let i = 3; i <= Math.sqrt(number); i += 2) {
            if (number % i === 0) return false;
        }
        
        return true;
    }
    
    function dfs(index, sum, depth) {
        if (depth === 3) {
            if (isPrime(sum)) answer++;
            return;
        }
        
        for (let i = index; i < nums.length; i++) {
            dfs(i + 1, sum + nums[i], depth + 1);
        }
    }
    
    dfs(0, 0, 0);
    return answer;
}

결론

소수판별하는 로직에 '에라토스테네스의 체'라는 것을 이용하면 더 효율적으로 검사가능한데 이 문제에서는 굳이 필요 없음

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

프로그래머스 옹알이 (2)  (0) 2025.07.04
프로그래머스 [1차] 뉴스 클러스터링  (0) 2025.07.04
프로그래머스 방문 길이  (0) 2025.06.06
프로그래머스 게임 맵 최단거리  (0) 2025.06.06
프로그래머스 모음사전  (0) 2025.06.05
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • 프로그래머스 옹알이 (2)
  • 프로그래머스 [1차] 뉴스 클러스터링
  • 프로그래머스 방문 길이
  • 프로그래머스 게임 맵 최단거리
의현
의현
개발은 즐거워
  • 의현
    UIHYEON BLOG
    의현
  • 전체
    오늘
    어제
    • 분류 전체보기 (116)
      • 프론트엔드 (47)
        • JavaScript (47)
        • TypeScript (0)
        • HTML (0)
        • CSS (0)
        • React (0)
      • 프로젝트 (2)
        • Task Flow (2)
      • 코딩테스트 (66)
        • Binary Search (2)
        • bfs (Breadth-first s.. (4)
        • dfs (Deapth-first se.. (1)
        • Greedy (1)
        • Dynamic Programming (1)
        • two pointer (4)
        • 구현 (2)
        • LIS(Longest Increasi.. (0)
        • 문자열 (3)
        • 자료구조 (4)
        • 비트마스크 (2)
        • 수학 (2)
        • 프로그래머스 (40)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
의현
프로그래머스 소수 만들기
상단으로

티스토리툴바