https://programmers.co.kr/learn/courses/30/lessons/92335
[문제]
[풀이]
1. 진수 변환하기
2. "0"을 기준으로 나누기
3. 소수 판별해서 카운트하기
이렇게 진행하면 쉽게 풀리는 문제이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import java.util.*;
import java.io.*;
import java.util.stream.Collector;
import java.util.stream.Collectors;
class Solution {
public int solution(int n, int k) {
String converted = convert(n,k);
return (int)Arrays.stream(convert(n, k).split("0")) // 0 기준으로 문자열 분리
.filter(e -> !e.equals("")).mapToLong(Long::parseLong) // 빈 문자열이 아닌것을 골라냄
.filter(this::isPrime).count(); //소수이면 갯수 카운트
}
public String convert(int n,int k){
StringBuilder ret = new StringBuilder();
while (n>0){
ret.insert(0,n%k);
n/=k;
}
return ret.toString();
}
public boolean isPrime(long n) {
for (long i = 2; i<=(int)Math.sqrt(n); i++)
if (n % i == 0)
return false;
return n != 1;
}
}
|
cs |
'알고리즘,PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [Level3] 양과늑대 JAVA (0) | 2022.02.08 |
---|---|
[프로그래머스] [Level2] 주차 요금 계산JAVA (0) | 2022.02.05 |
[프로그래머스] [Level1] 신고결과받기 JAVA (0) | 2022.02.02 |
[프로그래머스] [Level2] 더 맵게 JAVA (0) | 2022.01.12 |
[프로그래머스] [Level3] 등굣길 JAVA (0) | 2021.11.27 |