Where who wants to meet someone

백준 Swift [2501] 약수 구하기 본문

백준 알고리즘 문제 기록/약수, 배수와 소수

백준 Swift [2501] 약수 구하기

Lust3r 2023. 7. 1. 16:59
728x90

난이도

브론즈 III

 

문제

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

 

2501번: 약수 구하기

첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.

www.acmicpc.net

 

내 답안

let input = readLine()!.split(separator: " ").map { Int($0)! }

let n = input[0]
let k = input[1]

var count = 0

// 반복문을 통해 1부터 n까지 돌면서 약수 파악
for i in 1...n {
    // 약수가 맞다면 count 증가
    if n % i == 0 {
        count += 1
    }

    // 현재 count가 k와 같다면, k번째 작은 수이기 때문에 출력하고 종료
    if count == k {
        print(i)
        break
    }

    // i가 n임에도 위의 if문을 타지 않았다면 k번째 수를 출력할 수 없기 때문에 0을 출력
    if i == n {
        print("0")
    }
}

- 풀이 방법은 주석과 동일