[프로그래머스] 전화번호 목록
2020. 4. 4. 13:22ㆍ프로그래머스/LEVEL 2
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Arrays.sort(phone_book, new Comparator<String>(){
public int compare(String s1, String s2){
return s1.length()-s2.length();
}
});
for(int i=0; i<phone_book.length-1; i++){
for(int j=i+1; j<phone_book.length; j++){
if(phone_book[j].substring(0,phone_book[i].length())
.equals(phone_book[i])){
return false;
}
}
}
return answer;
}
}
----------------------------------------------------------------------------------------------------------------------------
2020.06.25
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Arrays.sort(phone_book, new Comparator<String>(){
public int compare(String s1, String s2){
return s1.length()-s2.length();
}
});
for(int i=0; i<phone_book.length-1; i++){
for(int j=i+1; j<phone_book.length; j++){
if(phone_book[j].substring(0,phone_book[i].length())
.equals(phone_book[i])){
return false;
}
}
}
return answer;
}
}
1. 한 전화번호가 다른 전화번호를 접두사로 가지려면 문자열의 길이가 같거나 더 길어야한다.
2. 전화번호부를 전화번호 길이를 기준으로 정렬한다.
3. 전화번호부를 탐색하며 접두사와 같은지를 검사하고 발견되면 바로 false를 리턴해준다.
4. 모두 탐색했을때 발견되지 않으면 true로 초기화된 answer가 그대로 리턴된다.
'프로그래머스 > LEVEL 2' 카테고리의 다른 글
[프로그래머스][summer/winter coding] 영어 끝말잇기 (0) | 2020.04.07 |
---|---|
[프로그래머스] 올바른 괄호 (0) | 2020.04.04 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2020.04.04 |
[프로그래머스] 행렬의 곱셈 (0) | 2020.04.03 |
[프로그래머스] 숫자의 표현 (0) | 2020.04.02 |