리나의 개발로그

PROGRAMMERS 서울에서 김서방 찾기

|

출처

문제출처 - PROGRAMMERS 코딩테스트 - 서울에서 김서방 찾기

문제

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

제한 사항

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

제출한 답안

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

다른 사람 풀이

public String findKim(String[] seoul){
        //x에 김서방의 위치를 저장하세요.
        int x = 0;
    while(x<seoul.length){
      if(seoul[x] == "Kim")
        break;
      else x++;
    }


        return "김서방은 "+ x + "에 있다";
    }

포인트

  • String을 비교할 때는 ==이 아니라 .equals()를 사용!(계속 안되서 왜지 왜지 생각하다가 퍼뜩 떠올랐다.)
  • while을 써서 break;를 쓰면 찾는 순간 탐색을 그만하니까 시간이 더 줄어들 것 같다.
  • int x = Arrays.asList(seoul).indexOf(“Kim”); 방식으로 찾는 것도 보았는데, list로 바꾸지는 않아도 될 것 같지만 이런 방식도 있다! 정도로 알아두는 것도 좋을 듯.

Comments