백준 알고리즘 - 코틀린 풀이
https://www.acmicpc.net/problem/2501
2501번: 약수 구하기
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
www.acmicpc.net
1. 문제


2. 정답
<code />
import java.util.*
fun main() {
val sc = Scanner(System.`in`)
val N = sc.nextInt()
val K = sc.nextInt()
val array = ArrayList<Int>()
for(i in 1.. N) {
if (N % i == 0) {
array.add(i)
}
}
if (array.size >= K) {
println(array[K-1])
} else {
println("0")
}
}
3. 풀이
해당 문제는 두 수를 입력받아 첫번째 숫자의 약수들 중 두번째 숫자 번째 수를 출력하는 문제입니다.
기본적으로 약수는 숫자를 나누었을 때 나머지가 0이되는 수들의 집합입니다.
따라서 아래와 같이 N을 i로 나누었을 때 나머지가 0이라면 소수로 판단하고 ArrayList<Int>에 add 시킵니다.
<code />
for(i in 1.. N) {
if (N % i == 0) {
array.add(i)
}
}
다음은 문제에서 주어진 조건인 K번째 약수가 존재하는지를 비교하고 약수 혹은 0을 출력하는 코드입니다.
이 때, 약수 비교는 1부터 시작했지만 배열의 인덱스는 0부터 시작하기 때문에, K가 아닌 K-1을 인덱스로 선언합니다.
<code />
if (array.size >= K) {
println(array[K-1])
} else {
println("0")
}
감사합니다.
'백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 행렬 덧셈(2738번) - 코틀린 풀이 (0) | 2023.09.25 |
---|---|
[백준 알고리즘] 대지(9063번) - 코틀린 풀이 (0) | 2023.09.22 |
[백준 알고리즘] 소수(2581번) - 코틀린 풀이 (0) | 2023.09.22 |
[백준 알고리즘] 너의 평점은(25206번) - 코틀린 풀이 (0) | 2023.09.13 |
[백준 알고리즘] 공 넣기(10810번) - 코틀린 풀이 (0) | 2023.09.11 |