일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 해커랭크
- 방통대 대학원 정보과학과
- C++
- 하늘과 바람과 별과 詩
- 코딩테스트
- Code Jam
- Kubernetes
- swift
- on-prem
- Qualification Round
- 하늘과 바람과 별과 시
- 정보과학과
- Python
- GitLab
- nestedlists
- 방송통신대학교 대학원 정보과학과
- secondlowestgrade
- ingress-nginx
- hackerrank
- LEVEL 2
- Code Jam 2022
- openebs
- 3D PRINTING
- K8S
- 프로그래머스
- MySQL
- 2022
- 파이썬
- ESXi 업데이트
Archives
- Today
- Total
공대생의 비망록
[프로그래머스][Lv. 1] 하샤드 수 Swift 풀이 본문
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 |
'Programming Language > Swift' 카테고리의 다른 글
[프로그래머스][Lv. 1] 콜라츠 추측 Swift 풀이 (0) | 2022.03.14 |
---|---|
[프로그래머스][Lv. 1] 평균 구하기 Swift 풀이 (0) | 2022.03.14 |
[프로그래머스][Lv. 1] 핸드폰 번호 가리기 Swift 풀이 (0) | 2022.03.14 |
[프로그래머스][Lv. 1] 행렬의 덧셈 Swift 풀이 (0) | 2022.03.14 |
[프로그래머스][Lv. 1] x만큼 간격이 있는 n개의 숫자 Swift 풀이 (0) | 2022.03.14 |
Comments