programmers lv1 완주하지 못한 선수(고득점 kit)
전화번호 목록
처음 시도했던 접근법은,
HashMap<Integer, ArrayList
스터디원들과 리뷰를 진행하고 나서, 다시 고친 코드.
길이 20짜리 전화번호를 HashSet에 19,18,17…1까지 모두 저장한다.
그리고 나서 다시 찾아보면 된다..
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
HashSet<String> hs = new HashSet<>(); //접두어를 모두 저장 1,12까지만 4,45, 7,78
HashMap<Integer, String> hm = new HashMap<>();
//접두어에 모두 넣기
for (String str : phone_book) {
for (int i = str.length()-1; i >= 1; i--)
hs.add(str.substring(0, str.length() - i)); //12345 5 , 1 12 123 1234
}
//접두어에 들어가는지 봄
for(String str : phone_book){
if(hs.contains(str))
return false;
}
return true;
}
}