해시맵을 사용하면 간단하다.
import java.util.HashMap;
class Solution {
public boolean solution(String[] phone_book) {
HashMap<String, Integer> HM = new HashMap<>();
for (String number : phone_book) HM.put(number, 1);
for(int i = 0; i < phone_book.length; i++) {
for(int j = 1; j < phone_book[i].length(); j++) {
if(HM.containsKey(phone_book[i].substring(0,j))) {
return false;
}
}
}
return true;
}
}
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<String, Integer> HM = new HashMap<>();
}
}
for (String number : phone_book) HM.put(number, 1);
key 값만 확인하면 되기 때문에, value에는 1로 채워 둔다.
for(int i = 0; i < phone_book.length; i++) {
for(int j = 1; j < phone_book[i].length(); j++) {
if(HM.containsKey(phone_book[i].substring(0,j))) {
return false;
}
}
}
return true;
phone_book[i] 를 j만큼 잘라 해시맵에 동일한 값이 있으면 false 리턴
없으면 i++ 해서 다음 전화번호로 탐색
모두 없으면 true 리턴