티스토리 뷰

Algorithm

swift 백준 4673

강경 2021. 1. 5. 16:04
728x90
반응형



// 빈 배열 생성
var selfNumbers: [Int] = []
for n in 0...10026 {
    selfNumbers.insert(0, at: n)
}

// 셀프 넘버가 아닌 인덱스에 1넣기
for n in 1...9999 {
    let index = getPlusAllNumber(number: String(n))
    
    if index < 10000 && selfNumbers[index] == 0 {
        selfNumbers[index] = 1
    }
}

// 셀프 넘버 출력
for n in 1...9999 {
    if selfNumbers[n] == 0{
        print("\(n)")
    }
}

// 숫자 전부 더한 합 출력
func getPlusAllNumber(number: String) -> Int {
    let numbers = Array(number)
    var sum = Int(number)!
    
    for n in numbers {
       sum += Int(String(n))!
    }

    return sum
}

처리 속도가 오래걸려서 실패할 줄 알았는데 성공했다 ...

분명히 이 방법보다 더 빠른 방법이 있을거 같은데

내 머리로는 이게 최선인거 같다 .. 😩

 

www.acmicpc.net/problem/4673

 

4673번: 셀프 넘버

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,

www.acmicpc.net

 

728x90
반응형

'Algorithm' 카테고리의 다른 글

swift 백준 1065  (0) 2021.01.05
swift 백준 4344  (0) 2020.12.28
swift 백준 8958  (0) 2020.12.28
swift 백준 1546  (0) 2020.12.28
swift 백준 3052  (0) 2020.12.28