뒤집은 소수

heejung·2021년 10월 12일

프로그래머스

목록 보기
41/76

문제 설명

N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성하세요.

예를 들어 32를 뒤집으면 23이고, 23은 소수이다.

그러면 23을 출력한다.

단 910를 뒤집으면 19로 숫자화 해야 한다.

첫 자리부터의 연속된 0은 무시한다.

▣ 입력설명

첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다.

각 자연수의 크기는 100,000를 넘지 않는다.

▣ 출력설명

첫 줄에 뒤집은 소수를 출력합니다.

출력순서는 입력된 순서대로 출력합니다.

▣ 입력예제 1

9

32 55 62 20 250 370 200 30 100

▣ 출력예제 1

23 2 73 2 3

문제 풀이

  1. 받은 숫자를 문자열로 변환 후 뒤집어서 다시 숫자로 변환
  2. 소수인지 판별하는 isPrime 함수 생성
function isPrime(tmp) {
    if (tmp === 1) return false;
    for (let i = 2; i <= Math.floor(tmp / 2); i++) {
        if (tmp % i === 0) return false;
    }
    return true;
}
function solution(arr) {
    let answer = [];
    for (let x of arr) {
        let tmp = Number(String(x).split('').reverse().join(''));
        if (isPrime(tmp)) answer.push(tmp);
    }
    return answer;
}

let arr = [32, 55, 62, 20, 250, 370, 200, 30, 100]
console.log(solution(arr));
profile
프론트엔드 공부 기록

0개의 댓글