프로그래머스 - k진수에서 소수 개수 구하기

‍서지오·2023년 7월 25일
0

코딩 테스트

목록 보기
15/19

풀이 방법✏️

  1. 입력으로 주어진 수를 Integer.toString() 메소드로 K진수로 변환
  2. split("0") 메소들르 통해 K진수로 변환한 문자열을 문제에서 주어진 조건에 따라 여러 덩어리로 구분
  3. 각 덩어리가 소수인지 판단 후 총 소수의 개수 반환

소스 코드(feat. 알찬 주석)⌨️

import java.io.*;
import java.util.*;
class Solution {
    static int N, K;
    static String changedNum;
    
    public int solution(int n, int k) {
        N = n;
        K = k;
        
        changedNum = Integer.toString(N, K); // K진수로 변환
        String[] splitNums = changedNum.split("0"); // 조건에 맞는 덩어리들로 split
        
        int answer = 0;
        for(String num : splitNums){
            if(num.equals("")){
                continue;
            }
            
            long temp = Long.parseLong(num);
            
            if(isPrime(temp)){
                answer++;
            }
        }
        
        return answer;
    }
    
    private boolean isPrime(long num){
        if(num == 1){
            return false;
        }
        if(num == 2){
            return true;
        }
        for(int i=2; i<=Math.sqrt(num); i++){ // num / 2로 하면 시간초과 납니다..
            if(num % i == 0){
                return false;
            }
        }
        return true;
    }
}
profile
백엔드 개발자를 꿈꾸는 학생입니다!

0개의 댓글

관련 채용 정보