Programing/Algorithm

Java, Javascript 프로그래머스 Level1 서울에서 김서방 찾기

리커니 2018. 5. 14.
반응형

Java, Javascript 프로그래머스 Level1 서울에서 김서방 찾기

 

 

읽어보시면 아시겠지만, 문제는 간단합니다.

String배열에서 Kim 문자열이 있는 인덱스를 리턴하면 됩니다.

 

자바 코드부터 보도록 하죠.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class FindKim {
    public String findKim(String[] seoul){
        //x에 김서방의 위치를 저장하세요.
        int x = 0;
        for(int i=0; i<seoul.length; i++){
            if(seoul[i].equals("Kim")){
                x = i;
                break;
            }
        }
        //x = Arrays.asList(seoul).indexOf("Kim");
        return "김서방은 "+ x + "에 있다";
    }
    
    // 실행을 위한 테스트코드입니다.
    public static void main(String[] args) {
        FindKim kim = new FindKim();
        String[] names = {"Queen""Tod","Kim"};
        System.out.println(kim.findKim(names));
    }
}
cs

 

대부분의 분들이 저와 같이 풀었더군요.

배열의 개수만큼 반복문을 돌아 Kim이 있는 인덱스를 리턴하는 방식.

 

아래 주석은 배열을 List 형태로 바꿔 Kim이 있는 인덱스를 리턴하는 방식입니다.

문제의 조건에 오직 한 번만 이라는 조건이 있기 때문에 사용 가능하죠.

List의 indexOf 메소드는 가장 작은 인덱스를 리턴하기 때문입니다.

 

 

 

속도의 차이는 크게 없지만 코드는 간결하니 보기 좋네요.

다음은 Javascript 코드 입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function findKim(seoul){
  var idx = 0;
  //함수를 완성하세요
  for(var i=0; i<seoul.length; i++){
      if(seoul[i]==="Kim"){
          idx = i;
          break;
      }
  }
  //idx = seoul.indexOf("Kim");
  return "김서방은 " + idx + "에 있다";
}
 
// 실행을 위한 테스트코드입니다.
console.log( findKim(["Queen""Tod""Kim"]));
cs

 

이 것도 마찮가지로 for문을 반복하는 방법과 배열의 Index를 리턴하는

indexOf 메소드를 사용하는 방식을 사용 할 수 있습니다.

 

배열에서 indexOf 메소드를 사용하면 해당 값이 있는 인덱스를 쉽게 구할 수 있다.

는 알고 넘어가도록 합시당~

아래는 Java의 indexOf와 lastIndexOf 메소드에 대한 설명이니 참고하세요~

 

 

문제출처 : https://programmers.co.kr/

반응형

댓글

💲 추천 글