본문 바로가기

알고리즘

[코딩테스트] Level. 1 서울에서 김서방 찾기

728x90

문제 설명

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

제한 사항
  • seoul은 길이 1 이상, 1000 이하인 배열입니다.
  • seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
  • "Kim"은 반드시 seoul 안에 포함되어 있습니다.
입출력 예
["Jane", "Kim"] "김서방은 1에 있다"

 

나의 문제 풀이 법 . forEachIndexd() 함수를 활용한다. 

private fun solution(seoul: Array<String>): String {
    var answer = ""
    seoul.forEachIndexed { index, it ->
        if (it == "Kim") {
            return "김서방은 ${index}에 있다"
        }
    }
    return answer
}

forEachIndexd() 란 list의 index 값과  그 index 에 위치한 value를 활용할 수 있는 함수이다. 

 

 

다른 고수님들의 풀이법. 

  fun solution(seoul: Array<String>): String = "김서방은 ${seoul.indexOf("Kim")}에 있다"
  • "Kim"은 반드시 seoul 안에 포함되어 있습니다.
  • "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

를 이용해서 이렇게 코드를 사용하셨다. 정말 간결한 코드인 것 같다.