1. 문제 설명 (📎Link)
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
2. 제한사항
N의 범위 : 100,000,000 이하의 자연수
📝 문제
import Foundation
func solution(_ n:Int) -> Int
{
var answer:Int = 0
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("Hello Swift")
return answer
}
💻 내가 푼 방법(테스트 통과)
func solution(_ n:Int) -> Int
{
//Int 타입의 'n' 을 받아 String으로 변환
//String으로 변환하는 이유는 받은 정수의 각 문자를 개별적인 정수로 구분하기 위함
//ex. "123" -> "1", "2", "3" (아래 코드에서 실행될 예정)
var str = String(n)
//map함수를 문자열에 사용하면, char 타입으로 들어가게됨
//str에 map함수를 사용하여 다시 Int타입으로 형변환 후 배열을 만들어줌
//ex. "123" -> "1", "2", "3" -> [1, 2, 3]
var arr = str.map{Int(String($0))!}
//arr에 담긴 배열을 reduce함수를 통해 더해줌
//arr.reduce(0, +) -> 모든 숫자를 0부터 시작해서 더 한다는 의미
return arr.reduce(0, +)
}
🔎 의문점과 공부한 것
1. 고차함수를 이용해서 처음 코드를 풀어봤는데 깔끔하고 훨씬 직관적이라 좋은 것 같다
2. 아래처럼 더 깔끌하게 줄일 수 있다
import Foundation
func solution(_ n:Int) -> Int
{
return String(n).reduce(0, {$0 + Int(String($1))!})
}
'🍎 Swift > Programmers' 카테고리의 다른 글
[👾 Programmers] 15. 나머지가 1이 되는 수 찾기 (0) | 2024.06.19 |
---|---|
[👾 Programmers] 14. 약수의 합 (0) | 2024.06.18 |
[👾 Programmers] 12. 배열의 평균값 (0) | 2024.06.14 |
[👾 Programmers] 11. 짝수와 홀수 (0) | 2024.06.14 |
[👾 Programmers] 10. 배열의 평균값 (0) | 2024.06.13 |