๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 2501๋ฒˆ: ์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ

by ์ฃผ๋ฐœ2 2020. 1. 20.
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/2501

 

2501๋ฒˆ: ์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ

์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. N์€ 1 ์ด์ƒ 10,000 ์ดํ•˜์ด๋‹ค. K๋Š” 1 ์ด์ƒ N ์ดํ•˜์ด๋‹ค.

www.acmicpc.net

 

์ฝ”๋“œ

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		int K = scan.nextInt();
		int countN = 0;	// N์˜ ์•ฝ์ˆ˜ ๊ฐœ์ˆ˜
		int index = 0;	// K๋ฒˆ์งธ ์ž‘์€์ˆ˜์™€ ํŒ๋ณ„ํ•  ๋ณ€์ˆ˜
		int result = 0;	// ๊ฒฐ๊ณผ๊ฐ’
		
		
		for(int i=1; i<=N; i++) {
			if(N % i == 0) {	// i = 1, 2, 3, 6
				countN ++;
				index ++;
				if(index == K) {
					result = i;
					break;
				}
			}
		}
		
		if(countN < K)
			System.out.println("0");
		else
			System.out.println(result);
		
		scan.close();
	}

}

 

 

ํ’€์ด

๋ฐ˜๋ณต๋ฌธ์—์„œ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค(N%i == 0)

์•ฝ์ˆ˜์ผ ๋•Œ, N์˜ ์•ฝ์ˆ˜์˜ ๊ฐฏ์ˆ˜(countN)๋ฅผ ++ํ•˜๊ณ ,

์•ฝ์ˆ˜๊ฐ€ ๋ช‡๋ฒˆ์งธ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด index๋ฅผ ++ํ•œ๋‹ค.

๋งŒ์•ฝ index์™€ ์ฐพ์œผ๋ คํ•˜๋Š” K์˜ ๊ฐ’์ด ๋™์ผํ• ๋•Œ, result ๊ฐ’์— i๊ฐ’์„ ์ €์žฅํ•˜๊ณ , ๋น ์ ธ๋‚˜์˜จ๋‹ค.

 

๋งŒ์•ฝ ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ณด๋‹ค K๊ฐ€ ํฌ๋ฉด 0์„ ์ถœ๋ ฅํ•˜๊ณ , K๊ฐ€ ์ž‘์œผ๋ฉด result๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€