반응형
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
Arrays.sort(phone_book);
for(int i = 1; i < phone_book.length; i++){
if(phone_book[i].startsWith(phone_book[0])){
return false;
}
}
return true;
}
}
정렬해서 제일 작은 수를 찾고 이를 비교하여 접두어에 그 숫자가 있으면 false, 없으면 true
그런데 위의 코드로 할 경우 첫번째 번호가 접두어가될 수 있는게 없는데 두번째 번호를 접두어로 가지는 번호가 있을 경우 성립하지 않습니다. (프로그래머스 채점이 쫌 이상한것 같습니다. 성립되지 않는데 통과처리가 되었습니다.)
그래서 다른 사람의 풀이를 보니
class Solution {
public boolean solution(String[] phoneBook) {
for(int i=0; i<phoneBook.length-1; i++) {
for(int j=i+1; j<phoneBook.length; j++) {
if(phoneBook[i].startsWith(phoneBook[j])) {return false;}
if(phoneBook[j].startsWith(phoneBook[i])) {return false;}
}
}
return true;
}
}
이렇게 간단하게 2중 for문으로 해결!
반응형
'2023년 이전 > 프로그래머스 코딩 테스트' 카테고리의 다른 글
위장 (0) | 2020.08.09 |
---|---|
완주하지 못한 사람 (0) | 2020.08.09 |