알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

https://programmers.co.kr/learn/courses/30/lessons/12919

 

코딩테스트 연습 - 서울에서 김서방 찾기

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

programmers.co.kr


Think🤔

"Kim" 이라는 단어를 String의 서울 배열에서 찾으면 된다.

처음에는 ==로 찾으려고 했지만 if문을 안타서 왜 안타나 고민한 결과

문자열의 비교는 equals가 맞다 생각하여 equals를 사용해서 정답을 찾을 수 있었다.


Solution✍
class Solution {
    public String solution(String[] seoul) {
        String answer = "";
        int num = 0;
        
        for(int i=0; i<seoul.length; i++){
            if(seoul[i].equals("Kim")){
                num = i;
                break;
            }
        }
        answer = "김서방은 " + String.valueOf(num) + "에 있다";
        
        return answer;
    }
}

Review🤩

처음에 asList를 이용해서 contains로 찾으려고 했다.

하지만 contains는 true 나 false를 알려주는 거지 그럼 몇 번째 인지 알수는 없다.

다른 사람의 풀이를 본 결과 indexOf를 이용해서 몇 번째 인지 확인하는 코드를 확인하고 직접 작성해보았다.

import java.util.Arrays;

class Solution {
    public String solution(String[] seoul) {
        int x = Arrays.asList(seoul).indexOf("Kim");
        
        return "김서방은 " + x + "에 있다";
    }
}

 

+ Recent posts