문제정리
전화번호를 담은 배열 phone_book이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return
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 < map.size(); i++){
for(int j = 0; j < phone_book[i].length(); j++){
if(map.containsKey(phone_book[i].substring(0, j))){
return false;
}
}
}
return answer;
}
}
phone_book를 hashmap에 값을 넣고, 반복문을 이용해서 폰번호 길이만큼 포함하는지 반환할 수 있도록
containsKey(key) -> 맵에서 인자로 보낸 키가 있으면 true 없으면 false를 반환
containsValue(value) -> 맵에서 인자로 보낸 값이 있으면 true 없으면 false를 반환
HashSet
- 중복을 허용하지 않는 데이터 저장소
- HashMap을 내부적으로 사용하여 데이터를 관리 (값을 HashMap의 key로 저장)
- 순서 보장 X
HashMap
- (Key, Value) 형태로 데이터를 저장 / Key는 중복 불가능, Value는 중복 가능
HashSet은 중복된 값을 허용하지 않고 고유한 값들만 저장해야 할 때, 데이터의 존재 여부만 확인하면 될 때 (contains()로 빠른 탐색 가능) / HashMap은 Key-Value 쌍으로 데이터를 저장해야할 때, 특정 Key에 대해 빠르게 Value를 가져와야 할 때 (get(), put())
'코딩테스트' 카테고리의 다른 글
프로그래머스(JAVA) - STACK/QUEUE (같은 숫자는 싫어) (1) | 2025.02.13 |
---|---|
프로그래머스(JAVA) - Hash (의상) (1) | 2025.02.12 |
프로그래머스(JAVA) - Hash (완주하지 못한 선수) (1) | 2025.02.05 |
프로그래머스(JAVA) - Hash (폰켓몬) (1) | 2025.02.04 |
프로그래머스(JAVA) - level2(짝지어 제거하기) (1) | 2025.01.26 |