알고리즘
프로그래머스 - 서울에서 김서방 찾기
Heidong
2022. 6. 4. 17:49
반응형
내 풀이
public class P_21 {
public String solution(String[] seoul) {
String answer = "";
for(int i=0; i<seoul.length; i++) {
if(seoul[i].equals("Kim")) {
answer = String.valueOf(i);
}
}
return "김서방은 " + answer + "에 있다";
}
public static void main(String[] args) {
// 서울에서 김서방 찾기
P_21 p = new P_21();
String [] x = {"Jane", "Kim"};
System.out.println(p.solution(x));
}
}
단순하게 반복문 돌려서 인덱스를 찾았다.
다른 사람들의 풀이를 보면서 느낀점은 반복문 중간에 if 문의 조건이 활성화 되었을 경우 break를 걸어주면 반복문이 덜 돌기 때문에 효율적이라는 댓글을 보았다.
확실히 굳이 원하는 인덱스를 찾았으면 나머지까지 볼 필요 없이 반복문을 빠져나오는게 훨씬 효율적이다.
수정한 코드
for(int i=0; i<seoul.length; i++) {
if(seoul[i].equals("Kim")) {
answer = String.valueOf(i);
break;
}
}
다른 사람 풀이
public String findKim(String[] seoul){
//x에 김서방의 위치를 저장하세요.
int x = Arrays.asList(seoul).indexOf("Kim");
return "김서방은 "+ x + "에 있다";
}
Arrays.asList() 를 통해서 배열 seoul을 list로 담는다.
리스트 안에서 특정 요소의 인덱스를 찾기 위해서 indexOf를 사용한다.
결과적으로 반환 되는 값은 int 이기 때문에 int로 잡는다.
반응형