접두어 확인 문제! startsWith을 사용하면 string끼리 정확한 비교가 가능하다고 했지만 중분류가 해시인 만큼(ㅋㅋㅋ) 해시를 사용하기 위해 hashCode나 hash function을 사용해서 구현하고자 했다.
import java.util.Arrays;
class Solution {
public boolean solution(String[] phone_book) {
Boolean result = true;
//시간단축을 위해 sort를 해줬다.
Arrays.sort(phone_book);
for(int i=0 ; i < phone_book.length - 1 ; i++) {
//비교할 string의 hashCode를 얻어온다.
int hashPhone = phone_book[i].hashCode();
int from = phone_book[i].length();
for(int j=i+1;j<phone_book.length;j++) {
int tempTo = phone_book[j].length();
int to = tempTo;
if(tempTo > from)
to = from;
//비교당할 string의 hashCode를 얻어와 비교한다.
if(hashPhone == phone_book[j].substring(0,to).hashCode()) {
result = false;
break;
}
}
if(!result) break;
}
return result;
}
}
이렇게 풀이를 진행했더니 효용성 3,4번이 탈락했다. 효용성이란 무엇일까.. 아직모르겠다.
* 지금 보니 수정할 부분이 보인다. 중간에 to조정하는 부분 없어도 될듯... 비교당할 길이가 비교할 길이보다 작으면 실패한다고 해서 continue넣으면 훨씬 깔끔할 것 같다.
hashMap을 이용하여 containKeys 함수를 사용하니 훨씬 간결하게 풀이할 수 있었다.
[백준/Java] 1260_BFS/DFS (1) (0) | 2022.06.10 |
---|---|
[프로그래머스/Java] 그래프_가장 먼 노드 (0) | 2021.04.30 |
[백준/Python] 4153_직각삼각형 (0) | 2021.02.21 |
[백준/Python] 11653,1929,9020_소인수분해/소수시리즈 (0) | 2021.01.28 |
[프로그래머스/SQL]62284_우유와 요거트가 담긴 장바구니 (0) | 2021.01.03 |