본문 바로가기
IT/Algorithm

프로그래머스(Programmers) 서울에서 김서방 찾기 풀이(java)

by flatsun 2019. 8. 8.
반응형

프로그래머스 서울에서 김서방 찾기 문제는

 

String 형태의 배열을 하나 받아서

Kim 이라는 값이 적힌 배열이 몇번째 값인지 알아내는 문제인데

 

제한사항은 별로 중요하지 않고 배열 안에 Kim이

어디에 들어있는지만 확인하면 된다


내 풀이방법은 다음과 같은데

 

일단 배열을 보낸 뒤에

for문을 배열의 길이만큼 돌리는데

i = 0; i<배열명.length; i++

로 배열의 처음부터 끝까지 확인이 가능하다

 

이제 for문 안에서

if문을 넣어서 Kim과 같은 경우를 확인해줘야 하는데

 

seoul[i] == "Kim"이 아니라

seoul[i].equals("Kim")을 쓰는 이유는

 

비교하는 해시코드 주소가 다르기 때문인데

때문에 숫자가 아닌 문자를 비교할 때에는 반드시 ==가 아닌 eqauls를 사용해 줘야 한다

정확히는 아래 글을 참조해주면 된다

 

자바 ==와 equals() 차이 알아보기

자바 처음 하면 다들 하는 실수인데 나도 처음에 이걸로 개삽질 꽤 한거 같다 보면 String a나 b나 똑같은 haha라 비교 시 당연히 True가 뜰 것 같은데 예상을 뒤엎고 false가 뜬다 아니 똑같은 haha인데 왜 다..

flatsun.tistory.com

마지막으로 Kim을 찾고 나면

바로 break;를 넣어주는데

 

이미 Kim을 찾은 상황에서 for문을 더 돌릴 필요가 없기 때문에

break;를 넣어 바로 반복문을 중단시키고 값을 반환하는 것이다

 

마지막으로 프로그래머스 답안 제출 시에는

아래 코드를 복붙하면 된다

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

댓글