HIT해

[Swift] 백준 - 반복수열 본문

Swift/Swift 알고리즘

[Swift] 백준 - 반복수열

힛해 2024. 9. 9. 03:45
728x90

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

 

 

문제 접근

값들을 배열에 저장하고 저장하는 순간 이미 배열에 들어있는 숫자라면 반복이 생겼다고 판단해

내장함수 firstIndex(of)를 활용해 인덱스를 찾아서 출력하기로함.

 

import Foundation

func main() {
   
    let NM = readLine()!.split(separator: " ").map { Int($0)! }
    let (N,M) = (NM[0] , NM[1])
    var result : [Int] = []
    
    func repeatNum(_ num : String) {
        let xyz = num.map{ Int(String($0))! }
        
        var sum = 0
        
        
        for i in xyz {
            sum += Int(pow(Double(i), Double(M)))
        }
        
        
        if result.contains(sum){
            return print("\(result.firstIndex(of: sum)!)")
        }
        result.append(sum)
        repeatNum(String(sum))
        
    }
    
    result.append(N)
    repeatNum(String(N))
    
    
}

// main 함수 실행
main()