https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=java
처음에는 loop를 생각했는데 주제가 해시다보니 해시로 풀었다. 실전에서는 이렇게 문제 유형이 나오지 않을텐데 걱정이다 ㅠ
HashSet을 사용해도 되나 사용하지 않은 이유는 HashMap에 비해 느리다는 단점이다.
간단히 HashSet과 HashMap 의 차이점을 짚고넘어가자.
- HashSet : 순서의 의미를 두지 않으며 데이터의 중복이 없다. 오직 객체만 저장가능하다.
- HashMap : key-value 쌍 형대로 데이터를 저장한다. key 값은 중복값을 허용하지 않지만 value 값은 중복값을 허용한다.
import java.util.HashMap;
import java.util.Map;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < phone_book.length; i++) {
map.put(phone_book[i], i);
}
for (int i = 0; i < phone_book.length; i++) {
for (int j = 0; j < phone_book[i].length(); j++) {
if (map.containsKey(phone_book[i].substring(0, j)))
answer = false;
}
}
return answer;
}
}
'알고리즘 > 해시' 카테고리의 다른 글
[프로그래머스/해시] 폰켓몬(Java, 자바) (0) | 2023.02.04 |
---|