티스토리 뷰

문제 설명

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

제한 조건

  • seoul은 길이 1 이상, 1000 이하인 배열입니다.
  • seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
  • "Kim"은 반드시 seoul 안에 포함되어 있습니다.

내 답안

func solution(_ seoul:[String]) -> String {    
    var result = 0
    
    for (index, i) in seoul.enumerated() {
        // if i == "Kim" {
        //     result = String(index)
        // }
        
        guard i == "Kim" else { continue }
        result = index
    }

    return "김서방은 \(result)에 있다"
}

접근 방법

배열에서 index를 알 수 있는 함수 enumerated() 를 쓴다

다른 풀이

func solution(_ seoul:[String]) -> String {
    return "김서방은 \(seoul.firstIndex(of: "Kim")!)에 있다"
}

알게 된 것

  • firstIndex(of:) 특정 요소의 첫 번째 발생 위치를 찾는 메서드 
  • enumerated()
    • array.enumerated()  가능
    • string.enumerated() 가능
    • 처음에는 s를 배열로 변경한 후 진행했으나, 문자열에도 사용할 수 있다는 것을 알게 됨!

 

최근에 올라온 글