본문 바로가기

프로그래머스

프로그래머스 - 전화번호 목록

내 코드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