-
[프로그래머스 1단계] 알고리즘 15. 서울에서 김서방 찾기24년 11월 이전/레거시-알고리즘(3) 2018. 3. 29. 11:08반응형
문제 출처는 프로그래머스 알고리즘 연습 에서 볼 수 있습니다!(https://programmers.co.kr/learn/challenges)
알고리즘 15. 서울에서 김서방 찾기
findKim 함수(메소드)는 String형 배열 seoul을 매개변수로 받습니다. seoul의 element중
Kim
의 위치 x를 찾아,김서방은 x에 있다
는 String을 반환하세요. seoul에Kim
은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.public class FindKim {public String findKim(String[] seoul){//x에 김서방의 위치를 저장하세요.int x = 0;return "김서방은 "+ x + "에 있다";}// 실행을 위한 테스트코드입니다.public static void main(String[] args) {FindKim kim = new FindKim();String[] names = {"Queen", "Tod","Kim"};System.out.println(kim.findKim(names));}}풀이 :
이 문제의 풀이는 간단하다. 배열을 순회하면서 "Kim"을 찾으면 그 인덱스를 반환하면 된다. 코드는 다음과 같다.
public String findKim(String[] seoul){//x에 김서방의 위치를 저장하세요.int x = 0;for(String name : seoul){if(name.equals("Kim"))break;x++;}return "김서방은 "+ x + "에 있다";}뭐 어떻게 풀든 간단하지만 더 간단한 문제 풀이를 제시해보려 한다. 바로 Arrays.asList()를 이용하여 배열을 리스트로써 바꾸어서 문제를 풀게 되면 굉장히 쉽게 문제를 풀 수 있다. 자바의 List는 indexOf(T elem)이라는 메소드를 제공한다. 그 리스트의 해당 요소가 있으면 그 인덱스를 반환하는 함수이다. 코드는 다음과 같다.
public String findKim(String[] seoul){//x에 김서방의 위치를 저장하세요.int x = Arrays.asList(seoul).indexOf("Kim");return "김서방은 "+ x + "에 있다";}이렇게 한줄이면 간단하게 끝낼 수 있다. 자바가 제공하는 라이브러리를 이용하지 않아도 되지만 이용할 줄 알면 굉장히 많은 이득이 있기 때문에 그 때 그 때 많이 쓰는 라이브러리들은 따로 공부해도 좋을 것 같다.
728x90'레거시 > 레거시-알고리즘(3)' 카테고리의 다른 글
[프로그래머스 1단계] 알고리즘 17. 최솟값 만들기 (0) 2018.04.02 [프로그래머스 1단계] 알고리즘 16. 삼각형 출력하기 (0) 2018.03.30 [프로그래머스 1단계] 알고리즘 14. 문자열 숫자로 바꾸기 (0) 2018.03.27 [프로그래머스 1단계] 알고리즘 13. x만큼 간격이 있는 n개의 숫자 (0) 2018.03.23 [프로그래머스 1단계] 알고리즘 12. 문자열 내림차순으로 배치하기 (0) 2018.03.22