문제 설명
정수
start_num
과end_num
이 주어질 때,start_num
에서end_num
까지 1씩 감소하는 수들을 차례로 담은 리스트를 반환하도록 solution 함수를 작성합니다.제한사항
0 ≤
end_num
≤start_num
≤ 50
import Foundation
func solution(_ start_num: Int, _ end_num: Int) -> [Int] {
var array: [Int] = []
for i in end_num...start_num {
var num = i
array.append(num)
num += 1
}
return array.sorted(by: >)
}
import Foundation
func solution(_ start_num: Int, _ end_num: Int) -> [Int] {
return (end_num...start_num).reversed()
}
시작 숫자에서 끝 숫자까지 범위를 설정한 후, 그 범위를 역순으로 반환하도록 했다.
for문을 이용한 접근도 좋지만, Swift의 고차함수인 reversed()
를 통해 간결하게 코드를 작성할 수 있다는 점을 배웠다.
문제 설명
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수
i
,j
,k
가 매개변수로 주어질 때,i
부터j
까지k
가 몇 번 등장하는지 반환하도록 solution 함수를 작성해주세요.
import Foundation
func solution(_ i: Int, _ j: Int, _ k: Int) -> Int {
var count = 0
for num in i...j {
for char in String(num) {
if String(char) == String(k) {
count += 1
}
}
}
return count
}
i
부터 j
까지 모든 숫자를 문자열로 변환하여 각 자리수를 순회하며 k
와 같은 숫자가 몇 번 등장하는지 카운트했다.
숫자를 문자열로 변환한 후 각 자리수를 확인하는 방식으로, 특정 숫자의 빈도를 쉽게 구할 수 있다는 점을 알게 되었다. 반복문을 이용해 단순히 구현할 수도 있지만, 문자열 조작을 통해 간결하게 처리할 수 있음을 배웠다.