728x90
반응형
2014번: 소수의 곱
첫째 줄에 K(1 ≤ K ≤ 100), N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 K개의 소수가 오름차순으로 주어진다. 같은 소수가 여러 번 주어지는 경우는 없으며, 주어지는 소수는 모두 541보다 작거나
www.acmicpc.net
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
Main s = new Main();
s.doit();
}
int [] p = new int[100];
int [] idx = new int[100];
int [] r = new int[100001];
int [] nxt = new int[100];
int K = 0;
int N = 0;
public void doit() throws FileNotFoundException{
//System.setIn(new FileInputStream("input2.txt"));
Scanner sc = new Scanner(System.in);
// int T = sc.nextInt();
// for(int count = 0; count < T; count++){
K = sc.nextInt();
N = sc.nextInt();
for(int i = 0; i < K; i++){
p[i] = sc.nextInt();
nxt[i] = p[i];
}
r[0] = 1;
for(int i = 1; i <= N; i++){
int mini = getMin();
r[i] = mini;
for(int j = 0; j < K; j++){
if(nxt[j] == mini){
nxt[j] = p[j] * r[++idx[j]];
}
}
}
System.out.println(r[N]);
// Arrays.fill(p, 0);
// Arrays.fill(nxt, 0);
// Arrays.fill(idx, 0);
// Arrays.fill(r, 0);
// print();
// }
sc.close();
}
public int getMin(){
int ret = Integer.MAX_VALUE;
for(int i = 0; i < K; i++){
if(ret > nxt[i]){
ret = nxt[i];
}
}
return ret;
}
public void print(){
// System.out.println(Arrays.toString(p));
// System.out.println(Arrays.toString(nxt));
// System.out.println(Arrays.toString(r));
}
}
728x90
반응형
'IT 정보 > 알고리즘(백준, BOJ)' 카테고리의 다른 글
[백준-BOJ] 2096 (0) | 2021.02.03 |
---|---|
[백준-BOJ] 2042 (0) | 2021.02.02 |
[백준-BOJ] 2010 (0) | 2021.02.02 |
[백준-BOJ] 1978 (0) | 2021.02.02 |
[백준-BOJ] 1965 (0) | 2021.02.02 |