소수 만들기 - Summer/Winter Coding(~2018)

2023. 8. 12. 18:39·프로그래머스
목차
  1. 문제 설명
  2. 제한사항
  3.  
  4. 입출력 예
  5. 입출력 예 설명
  6. 내 풀이
  7. 해설

문제 설명

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
  • nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.

 

입출력 예

입출력 예 설명

입출력 예#1

  • [1,2,4]를 이용해서 7을 만들 수 있습니다.

입출력 예#2

  • [1,2,4]를 이용해서 7을 만들 수 있습니다.
  • [1,4,6]을 이용해서 11을 만들 수 있습니다.
  • [2,4,7]을 이용해서 13을 만들 수 있습니다.
  • [4,6,7]을 이용해서 17을 만들 수 있습니다.

내 풀이

function solution(nums) {
    let answer = 0;
    for(let i=0; i<nums.length; i++){
        for(let j=i+1; j<nums.length; j++){
            for(let k=j+1; k<nums.length; k++){
                let sum = nums[i]+nums[j]+nums[k];
                
                if(isValid(sum)) {
                    answer++;
                }
            }
        }
    }
    
    return answer;
}

const isValid = (sum) => {
    for(let i=2; i<sum; i++){
        if(sum % i === 0){
            return false
        }
    }
    return true;
}

해설

소수 조건  => 1과 자기 자신을 제외하고 나누어지지 않으며 1보다 큰 자연수 (1은 소수가 아님)

 

3개의 수를 더해야 하므로 배열을 3번 순회해야한다. 

각 수를 3번 더하고 나서 이제 이 값이 소수인지 유효성 검증이 필요하다.

이는 2부터 자기자신(sum) 미만 까지 sum을 나누어서 나머지가 한번이라도 0이면 부적합 
0이 아니면 적합하다.

 

적합할때마다 answer에 1을 더해주고

 

순회종료후 answer를 리턴해준다.

저작자표시 비영리 (새창열림)

'프로그래머스' 카테고리의 다른 글

모의고사  (0) 2023.08.12
2016년  (0) 2023.08.12
명예의 전당 (1)  (0) 2023.08.12
추억 점수  (0) 2023.08.12
가장 가까운 같은 글자  (0) 2023.08.12
  1. 문제 설명
  2. 제한사항
  3.  
  4. 입출력 예
  5. 입출력 예 설명
  6. 내 풀이
  7. 해설
'프로그래머스' 카테고리의 다른 글
  • 모의고사
  • 2016년
  • 명예의 전당 (1)
  • 추억 점수
king_hd
king_hd
웹 개발 공부를 위한 블로그입니다.
king_hd
웹 개발 기록
king_hd
전체
오늘
어제
  • 분류 전체보기
    • HTML
    • CSS
    • JS
    • Typescript
    • React
    • nodejs
    • Redux
    • Git
    • 오류모음
    • Webpack
    • 자료구조
    • 네트워크
    • Electron
    • 배포
    • Docker
    • 프로그래머스

블로그 메뉴

  • 홈

링크

공지사항

인기 글

태그

웹퍼블리셔
인증서 자동갱신
Hook
리덕스
propertykey
Redux-saga
next.js
docker mysql workbench 연동하는 법
const
리덕스사가
웹개발
docker
프로그래머스
let
코딩테스트
자바스크립트
타입스크립트
https 인증서 발급
TypeScript
mysqld: can't open file: 'mysql.ibd' (errno: 0 - )
webpack
백엔드
TAVE
JavaScript
ec2에 docker 설치
4차산업혁명동아리
env파일 환경변수 인식
Redux
프론트엔드
react

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.0
king_hd
소수 만들기 - Summer/Winter Coding(~2018)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.