본문 바로가기

프로그래머스(Kotlin)/Level 1

[프로그래머스 (Kotlin)] 서울에서 김서방 찾기

728x90

코드 힌트

  1. 배열 순회:
    • seoul 배열의 모든 요소를 하나씩 확인합니다.
    • for (i in seoul.indices)를 사용하면 배열의 인덱스를 쉽게 가져올 수 있습니다.
  2. 조건문 사용:
    • 각 요소가 "Kim"인지 확인하기 위해 if (seoul[i] == "Kim") 조건문을 사용합니다.
    • 만약 조건이 참이라면, 해당 인덱스를 포함한 문자열을 반환합니다.
  3. 여러가지 방식으로 풀기:
    • 정답에 같이 적겠습니다.

 


정답은 더보기 클릭

더보기
class Solution {
    fun solution(seoul: Array<String>): String {
        // "Kim"의 인덱스를 찾아서 결과 문자열을 생성하여 반환합니다.
        
        // seoul 배열의 각 요소를 순회하면서 "Kim"을 찾습니다.
        for (i in seoul.indices) {
            // 현재 요소가 "Kim"이면 결과를 반환합니다.
            if (seoul[i] == "Kim") {
                return "김서방은 ${i}에 있다" // 인덱스 i를 사용하여 위치를 알려줍니다.
            }
        }
        // "Kim"을 찾지 못한 경우 사용자에게 알리는 메시지를 반환합니다.
        return "Kim을 찾을 수 없습니다!"
    }
}

 

 

여러가지 메소드로 풀기

class Solution {
    fun solution(seoul: Array<String>): String {
        
        // Case 1: String 템플릿을 활용한 간단한 반환
        김씨를 찾고, indexOf로 위치를 찾아서 바로 반환합니다.
        return "김서방은 ${seoul.indexOf("Kim")}에 있다"
        
        // Case 2: forEachIndexed를 사용한 반복문 방식
        forEachIndexed는 첫 번째 매개변수로 인덱스를, 두 번째로 배열의 요소를 전달받아 탐색합니다.
        seoul.forEachIndexed { idx, s ->
            if (s == "Kim") {
                return "김서방은 ${seoul.indexOf("Kim")}에 있다"
            }
        }
        return "ElementNotFoundException"

        // Case 3: withIndex를 사용한 반복문 방식
        // withIndex는 (인덱스, 요소) 쌍을 제공하므로 이 방식으로도 탐색이 가능합니다.
        for ((idx, s) in seoul.withIndex()) {
            if (s == "Kim") {
                return "김서방은 ${seoul.indexOf("Kim")}에 있다"
            }
        }
        return "ElementNotFoundException"
    }
}
728x90