내 코드1 - String.contains() 사용
: contains 메서드의 매개변수가 실제로는 String이 아니라 CharSequence라는 형태로 받게 되는데
거기서 뭔가 문제가 발생하는 듯 하다.
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
for (int i = 0; i < phone_book.length - 1; i++) {
for (int j = i + 1; j < phone_book.length; j++) {
if (phone_book[i].contains(phone_book[j]) || phone_book[j].contains(phone_book[i])) {
answer = false;
break;
}
}
}
return answer;
}
}
내 코드2 - String.indexOf() == 0 사용
: indexOf()를 사용하면 뭔가 좀 느린 듯 하다.
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
for (int i = 0; i < phone_book.length - 1; i++) {
for (int j = i + 1; j < phone_book.length; j++) {
if (phone_book[i].indexOf(phone_book[j]) == 0 || phone_book[j].indexOf(phone_book[i]) == 0) {
answer = false;
break;
}
}
}
return answer;
}
}
내 코드3 - String.startWith() 사용 --> 정답
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
for (int i = 0; i < phone_book.length - 1; i++) {
for (int j = i + 1; j < phone_book.length; j++) {
if (phone_book[i].startsWith(phone_book[j]) || phone_book[j].startsWith(phone_book[i])) {
answer = false;
break;
}
}
}
return answer;
}
}
사실 무슨 차이인지 하나도 모르겠다.
위 차이는 별로 중요하지 않은 것 같아서 넘기고,,
문제 분류가 해시라서 다른 사람코드를 찾아봤는데
해시를 사용한 사람이 한명도 없었다.
'프로그래머스' 카테고리의 다른 글
프로그래머스 - 124 나라의 숫자 (0) | 2019.01.13 |
---|---|
프로그래머스 - 탑 (0) | 2019.01.12 |
프로그래머스 - 체육복 (0) | 2019.01.10 |
프로그래머스 - 예산 (0) | 2019.01.10 |
프로그래머스 - 2016년 (0) | 2019.01.10 |