728x90
[함수] 단계에서는 문제가 3개밖에 없어서 기록용으로 정리 ..
4673번
입력) 입력은 없다.
출력) 10,000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 증가하는 순서로 출력한다.
소깡이 풀이
import Foundation
func calculateDNumber(value: Int) -> Int {
let dNumber = value + (value / 10000) + (value % 10000 / 1000) + (value % 1000 / 100) + (value % 100 / 10) + (value % 10)
return dNumber
}
var arr: [Int] = []
var total: [Int] = []
for i in 0...10000 {
total.append(i)
arr.append(calculateDNumber(value: i))
}
let setArr = Set(arr)
let setTotal = Set(total)
let result = setTotal.subtracting(setArr).sorted(by: <)
print(result.map { String($0) }.joined(separator: "\n"))
먼저 dNumber를 계산하는 함수를 만들고 1부터 10,000까지의 수 중에서 dNumber를 계산해서 dNumber를 [Int] 배열에 넣는다.
그리고 1부터 10,000까지의 수를 [Int] 배열로 만들고
이 두 배열을 Set으로 바꾼 다음에 차집합을 계산한다.
그리고 차집합에 해당하는 숫자들을 오름차순으로 계산해서 출력하면 끝!
'Algorithm' 카테고리의 다른 글
[알고리즘] DFS 구현 (0) | 2022.09.29 |
---|---|
[알고리즘] BFS 구현 (0) | 2022.09.28 |
[백준] 1712번: 손익분기점 (1) | 2022.09.21 |
[백준] 상수 (0) | 2022.09.11 |
[백준] 1157번: 단어 공부 (0) | 2022.09.11 |