IT 정보/알고리즘(백준, BOJ)

[백준-BOJ] 2014

Dalyoung 2021. 2. 2. 23:38
728x90
반응형

www.acmicpc.net/problem/2014

 

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