k진수에서 소수 개수 구하기

hyeongjun Jo·2022년 11월 30일
0

Programmers

목록 보기
6/7

https://school.programmers.co.kr/learn/courses/30/lessons/92335

문제

풀이

  1. isPrime함수 생성
  2. 진법 변환 함수 생성
  3. split("0")으로 string[] 배열 에 isPrime

코드

 public String change(int n, int k) {
        return Long.toString(n, k);
    }

k진법으로 바꾸는 함수

public boolean isPrime(long n) {
        if(n<=1) return false;
        if(n==2) return true;
        if(n%2==0) return false;
        for (int i = 3; i <= Math.sqrt(n); i += 2) {
            if(n%i==0) return false;
        }
        return true;
    }

소수인지 확인하는 함수

전체코드

class Solution {
    public int solution(int n, int k) {
        int answer = 0;

        String numString = change(n, k);
        String[] nums = numString.split("0");

        for (String num : nums) {
            if(num.equals("")) continue;
            long intNum = Long.parseLong(num);
            if(isPrime(intNum)) answer++;
        }


        return answer;

    }

    public String change(int n, int k) {
        return Long.toString(n, k);
    }

    public boolean isPrime(long n) {
        if(n<=1) return false;
        if(n==2) return true;
        if(n%2==0) return false;
        for (int i = 3; i <= Math.sqrt(n); i += 2) {
            if(n%i==0) return false;
        }
        return true;
    }
}

느낀점

문법을 잘 익히고 있으면 어려워보이는 문제도 참 쉽게 풀 수 있다는 걸 느꼈다.

profile
DevOps Engineer

0개의 댓글