TIL/알고리즘 공부

백준 11653번 Swift 알고리즘 연습

여의도사노비 2022. 9. 1. 19:53
728x90

문제도 간단하고 풀이도 간단하다.

입력받은 값을 소인수 분해하여 인자들을 전부 출력하면 된다.

 

 

이 문제를 풀면서 생각한 논리적 흐름은

  1. 입력 받은 값을 특정 값으로 나눴을때 나머지 없이 나눠진다면
  2. 더이상 나머지가 0이 아닐때까지 나눠준다.
  3. 그리고 그 몫들을 배열에 저장한다.
  4. 나머지가 0이 아닌 경우 1을 더하여 다시 나눠준다.
  5. 위 과정을 반복하여 모든 인수를 배열에 저장한다.

 

 

* 11653번

var n = Int(readLine()!)!
var arr = [Int]()
var count = 2
var k = n

if n == 1 {
    
} else {
    for _ in 1...n {
        if k % count != 0 {
            count += 1
        } else {
            arr.append(count)
            k = k / count
        }
    }
}

for i in arr {
    print(i)
}

 

정리(Today I Learned)

  1. 없음