728x90
반응형
서울에서 김서방 찾기
🟢 문제 설명
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
제한 사항
- seoul은 길이 1 이상, 1000 이하인 배열입니다.
- seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
- "Kim"은 반드시 seoul 안에 포함되어 있습니다.
입출력 예
seoul | return |
["Jane", "Kim"] | "김서방은 1에 있다" |
풀이 계획
반복문으로 배열을 돌려 Kim을 찾아서 위치 반환하기
🍬 Java
나의 문제 풀이
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;
}
}
다른 사람의 풀이
import java.util.Arrays;
class Solution {
public String solution(String[] seoul) {
String answer = "";
int x = Arrays.asList(seoul).indexOf("Kim");
answer = "김서방은 " + x + "에 있다";
return answer;
}
}
🛶 핵심 정리
java.util.Arrays 클래스
Arrays.asList(배열): 배열을 리스트로 변환
ArrayList의 indexOf()는 객체가 리스트에 존재한다면 인덱스를 리턴한다.
* indexOf() 함수의 내부에서도 똑같이 for문을 돌기 때문에 ArrayList 메모리를 할당하는 것은 성능상 유리하지 않음
🦉 반성의 시간
나는 우선 문제를 풀어본 뒤 다른 사람의 풀이를 보고 나와 비슷하게 한 코드나 더 좋은 방법으로 코딩한 코드를 살펴본다. 이 문제도 대부분 나와 비슷한 방법으로 구현을 했지만 새로운 표현이 있어서 가져와봤다!
배열에는 인덱스를 찾는 방법이 없기 때문에 리스트로 변환 후 인덱스를 찾는 방법이다.
성능상으로는 좋지 않을 수 있지만 배열을 리스트로 변환해야하는 경우 사용하기 좋겠다.
728x90
반응형
'Note > Coding Test' 카테고리의 다른 글
[프로그래머스] Level 1: 로또의 최고 순위와 최저 순위 (Java) 문제 풀이 / 핵심 내용 정리 (0) | 2021.07.04 |
---|---|
[프로그래머스] Level 1: 폰켓몬 (Java) 문제 풀이 / 핵심 내용 정리 (0) | 2021.07.04 |
[프로그래머스] Level 1: 상위 n개 레코드 (MySQL/ORACLE) 문제 풀이 / 핵심 내용 정리 (0) | 2021.07.04 |
[프로그래머스] Level 1: 신규 아이디 추천 (JavaScript/Java) 문제 풀이 / 핵심 내용 정리 (0) | 2021.07.01 |
[프로그래머스] Level 1: 문자열 내 p와 y의 개수 (Java) 문제 풀이 / 핵심 내용 정리 (0) | 2021.06.27 |