
링크
프로그래머스(level2)_전화번호 목록
1차 시도
코드
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
int len = phone_book[0].length();
String first = phone_book[0];
for(int i=1; i<phone_book.length; i++){
if(len >= phone_book[i].length()){
continue;
}
if(first.equals(phone_book[i].substring(0,len))){
answer = false;
break;
}
}
return answer;
}
}
- 문제 이해를 아예 잘못 했다. 첫번째 번호가 뒷 번호의 접두어라고 생각했다...
2차 시도
풀이 순서
- 번호를 사전순서대로 정렬한다.
- 앞 번호가 뒷 번호의 접두어면 false를 return
코드
import java.util.Arrays;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Arrays.sort(phone_book);
for(int i=0; i<phone_book.length-1; i++){
if(phone_book[i+1].startsWith(phone_book[i])){
answer = false;
break;
}
}
return answer;
}
}