본문 바로가기

ALGORITHM

[프로그래머스 Java] 서울에서 김서방 찾기

 

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

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

programmers.co.kr

⏱소요 시간 - 10분

🔑해결 방법

 

seoul[]을 돌면서 "Kim"이 존재하는 인덱스를 찾는 문제
String의 contains() 메서드를 사용하여 해결하였다.


🔎소스 코드

 

package step1;

// 서울에서 김서방 찾기
public class Ex17 {

	public static void main(String[] args) {
		
		System.out.println(solution(new String[] {"Jane", "Kim"}));
		System.out.println(solution(new String[] {"Jane", "Lee", "Kim"}));
		
	}
	
	public static String solution(String[] seoul) {
		
		String answer = "";
		
		for(int i = 0; i < seoul.length; i++) {
			
			if(seoul[i].contains("Kim")) {
				answer = "김서방은 " + i + "에 있다";
			}
			
		}
		 
		return answer;
		
	}
	
}

 

🔎다른 코드

Arrays.asList(seoul) -> String 배열 seoul을 List로 변환

Arrays.asList(seoul).indexOf("Kim") -> List에서 "Kim"이 포함된 인덱스를 반환해라.

이 코드를 통해 List는 순차적인 검색에 유리하다는 것을 또 한 번 알 수 있음!

package step1;

import java.util.Arrays;

// 서울에서 김서방 찾기
public class Ex17_1 {

	public static void main(String[] args) {
		
		System.out.println(solution(new String[] {"Jane", "Kim"}));
		System.out.println(solution(new String[] {"Jane", "Lee", "Kim"}));
		
	}
	
	public static String solution(String[] seoul) {
		
		int x = Arrays.asList(seoul).indexOf("Kim");
		
		return "김서방은 " + x + "에 있다";
		
	}
	
}