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 |