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

서울에서 김서방 찾기… 금방 풀었다라고 생각했고 테스트 통과까지 했다.

하지만 정확성 테스트에서 털려버렸고 이유는 질문하기에서 금방 찾을 수 있었다.


그것은 바로 String 비교 문제에서 항등 연산자로 문제를 풀었던 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//오답 코드 (정확성 테스트 실패)
class Solution {
public String solution(String[] seoul) {
String answer = "";
int i = 0;
for (i=0; i<seoul.length; i++){
if (seoul[i] == "Kim"){ //문제의 그 부분
break;
}
answer = "김서방은 "+i+"에 있다";
}

return answer;
}
}

자바에서 String을 비교할 때,
.equals() 는 객체끼리 내용(값)을 비교할 수 있는 메소드이고(값 자체를 비교),
== 는 객체의 참조(주소)값을 비교하는 연산자이다.

무심코 생각못하고 실전에서 이런 실수를 해버렸다면 정말 끔찍했을 것이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//솔루션
class Solution {
public String solution(String[] seoul) {
String answer = "";
String kim = "Kim";
int i = 0;
for (i=0; i<seoul.length; i++){
if (seoul[i].equals(kim)){
answer = "김서방은 "+i+"에 있다"; //띄어쓰기 주의
}
}
return answer;
}
}
Author

MoonDoni

Posted on

2020-01-26

Updated on

2020-01-26

Licensed under

댓글