본문 바로가기

iOS 앱 개발자 프로젝트/알고리즘 코드카타

[Algorithm] 문자열 묶기 (w/ Swift)

문자열들의 길이를 세어 가장 많이 등장한 길이의 개수를 반환하는 함수 만들기.

이번 문제에서는 forEach 메서드를 사용해서 배열의 각 요소를 순회하면서 지정된 클로저를 실행할 수 있었다.

 

예를 들어, 아래와 같은 배열이 있을 때,

let numbers = [1, 2, 3, 4, 5]

 

이 배열의 각 요소를 출력하고 싶다면 아래와 같이 forEach 메서드를 사용하면 된다.

numbers.forEach { number in
    print(number)
}

 

문자열 묶기 (shortcuts)

func solution(_ strArr:[String]) -> Int {
    var arr = Array(repeating: 0, count: 31)
    strArr.forEach { arr[$0.count] += 1 }
    return arr.max()!
}

 

길이가 31인 배열 arr을 생성하고, 모든 요소를 0으로 초기화한 후 strArr을 순회하면서 각 문자열의 길이에 해당하는 arr의 인덱스에 1을 더해준다. 마지막으로 arr에서 가장 큰 값을 찾아서 반환! 

arr.max() 메서드가 배열에서 가장 큰 값을 찾아준다 최종적으로 arr.max()!를 반환하면 끝!