공대생의 비망록

[프로그래머스][Lv. 1] 하샤드 수 Swift 풀이 본문

Programming Language/Swift

[프로그래머스][Lv. 1] 하샤드 수 Swift 풀이

myungsup1250 2022. 3. 14. 16:07

https://programmers.co.kr/learn/courses/30/lessons/12947

 

코딩테스트 연습 - 하샤드 수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하

programmers.co.kr

풀이

 

프로그래머스 레벨 1 문제인 자연수 뒤집어 배열로 만들기 Swift 풀이를 참고하여 문제 해결에 도움을 받을 수 있다.

주어진 수 x의 각 자릿수를 모두 더하여 그 합으로 x를 나누어 나머지가 0인지를 확인하면 된다.

Swift 내장 함수인 reduce(0, +)를 활용하여 배열의 합을 편하게 구하고, 나머지 값을 확인하여 문제를 해결했다.

 

끝!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import Foundation
 
func solution(_ x:Int-> Bool {
    var tmp: Int = x
    var digits: [Int= [Int]()
    
    digits.append(tmp % 10)
    while tmp / 10 > 0 {
        tmp /= 10
        digits.append(tmp % 10)
    }
    
    return x % digits.reduce(0+== 0 ? true : false
}
cs
Comments