알고리즘 문제 풀이를 블로그에 올리는 이유는 풀이, 코드를 기록하기 위함이니
앞으로 문제를 다 긁어오기보다 링크만 두고 풀이가 잘 보이도록 포스팅 할 예정입니다!
이 문제는 전화번호가 담긴 phone_book 배열에서
특정 원소가 다른 원소의 접두사가 되는지 여부를 확인하여
접두사 관계가 존재하는 경우 false, 접두사 관계가 존재하지 않는 경우 false를 반환하는 문제이다.
import java.util.HashMap;
class Solution {
public boolean solution(String[] phoneBook) {
boolean answer = true;
HashMap<String, Integer> map = new HashMap<>();
int num = 0;
for(String phone : phoneBook) {
map.put(phone, num++);
}
for(int i = 0; i < phoneBook.length; i++) {
for(int j = 1; j < phoneBook[i].length(); j++) {
// substring은 0 ~ j-1까지 잘라주는 메소드
if (map.containsKey(phoneBook[i].substring(0, j))) {
answer = false;
break;
}
}
}
return answer;
}
}