코딩뿌시기(연습)
[Java] 서울에서 김서방 찾기
thisnorm
2025. 1. 20. 14:49
문제 설명
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
제한 사항
- seoul은 길이 1 이상, 1000 이하인 배열입니다.
- seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
- "Kim"은 반드시 seoul 안에 포함되어 있습니다.
입출력 예
seoul
|
return
|
["Jane", "Kim"]
|
"김서방은 1에 있다."
|
이번 문제는 말을 이해하는 데 있어서 조금 걸렸다.
문제가 원하는 solution은 seoul 배열에서 Kim의 인덱스 위치를 파악하여
return 값으로 "김서방은 [인덱스 위치]에 있다." 를 원하는 것이었다.
그냥 일단 마음이 가는데로 코딩을 해보았다.
class Solution {
public String solution(String[] seoul) {
int answer = 0;
if(1 <= seoul.length && seoul.length <= 1000) {
for(int i = 0; i < seoul.length; i++) {
if(seoul[i].length() < 1 || seoul[i].length() > 20)
break;
if(seoul[i] == "Kim") {
System.out.println("김서방은 "+answer+"에 있다.");
}
else
answer++;
}
}
}
}
디버깅을 해보니깐 코드가 안돌아갔다.
문제를 확인해보니 문자열을 비교할 때는 seoul[i].equals("Kim")를 사용해야하는데
숫자를 비교하듯이 해버렸다.
그래서 코드를 다시 완성해보면
class Solution {
public String solution(String[] seoul) {
if (1 <= seoul.length && seoul.length <= 1000) {
for (int i = 0; i < seoul.length; i++) {
if (1 <= seoul[i].length() && seoul[i].length() <= 20){
if (seoul[i].equals("Kim")) {
return "김서방은 " + i + "에 있다";
}
} else {
return "";
}
}
}
return "";
}
}
이번엔 "Kim"이 없을 시에 반환값까지 넣어주었다.