정수 내림차순으로 배치하기
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.
예를들어 n이 118372면 873211을 리턴하면 됩니다.
// Code(01) - 정답
func solution(_ n:Int64) -> Int64 {
var str = String(n)
// 입력된 정수 **n**을 문자열로 변환(정수의 각 자릿수를 문자로 분리)
var sorted = String(str.sorted(by: >))
// sorted(by: >): ****내림차순으로 정렬하기 위해 **>** 연산자 사용
// String(): 정렬된 문자열을 다시 문자열로 변환
return Int64(sorted)!
// 정렬된 문자열을 다시 정수형으로 변환한 후 반환
}
하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
// Code(01) - 정답
func solution(_ x:Int) -> Bool {
var sum = 0
// for문 사용을 위해 x를 string()으로 변환
for i in String(x) {
// 반복문을 통해 한 글자씩 다시 **Int로 변환하여 더하기(sum)**
guard let number = Int(String(i)) else { break }
sum += number
}
// x를 **총 합(sum)으로 나누어 보고 0인지 확인**
return x % sum == 0
}
두 정수 사이의 합
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴한다.
// Code(01) - 정답
func solution(_ a:Int, _ b:Int) -> Int64 {
// 정수형 변수 **answer**를 선언하고 초기값을 0으로 설정
// 두 정수 **a**와 **b** 사이의 모든 정수를 합산한 결과 저장
var answer = 0
// 두 정수 **a**와 **b**를 기준으로 작은 값과 큰 값을 기준으로 범위를 설정
// **a**부터 **b**까지의 범위 설정
// 설정된 범위를 순회하며 변수 **i**에 각각 값을 할당
for i in a < b ? a...b : b...a {
// 순회하면서 각 정수 **i**를 **answer**에 더하기
// **a**와 **b** 사이의 모든 정수를 합산
answer += i
}
return Int64(answer)
}
' 𝗔𝗣𝗣𝗟𝗘 > ALGORITHM' 카테고리의 다른 글
[내일배움캠프] 데일리 루틴(iOS_3회차) - 행렬의 덧셈 (2) | 2024.02.23 |
---|---|
[내일배움캠프] 데일리 루틴(iOS_3회차) - 문자열 다루기 기본 (0) | 2024.02.22 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 부족한 금액 계산하기 (0) | 2024.02.21 |
알고리즘 복습(02) (0) | 2024.02.20 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 문자열 내림차순으로 배치하기 (0) | 2024.02.20 |