[TIL] 코테 덤프

Eden·2024년 11월 25일
1

TIL

목록 보기
52/92
post-thumbnail

프로그래머스: 카운트 다운

문제 설명

정수 start_numend_num이 주어질 때, start_num에서 end_num까지 1씩 감소하는 수들을 차례로 담은 리스트를 반환하도록 solution 함수를 작성합니다.

제한사항

0 ≤ end_numstart_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()를 통해 간결하게 코드를 작성할 수 있다는 점을 배웠다.

프로그래머스: k의 개수

문제 설명

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와 같은 숫자가 몇 번 등장하는지 카운트했다.

배운 점

숫자를 문자열로 변환한 후 각 자리수를 확인하는 방식으로, 특정 숫자의 빈도를 쉽게 구할 수 있다는 점을 알게 되었다. 반복문을 이용해 단순히 구현할 수도 있지만, 문자열 조작을 통해 간결하게 처리할 수 있음을 배웠다.

profile
Frontend🌐 and iOS

0개의 댓글