🔎 문제 : 공원 산책
https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=java
📍 정리
전화번호부에 한 번호가 다른 번호의 접두어라면 false 반환, 접두어가 존재하지 않는다면 true 반환
💡 풀이 과정
1️⃣ 접두사 Map 만들기
// <전화번호, 인덱스>
Map<String, Integer> phone_head = new HashMap<>();
for(int i=0; i<phone_book; i++){
phone_head.put(phone_book[i], i);
}
2️⃣ 접두사가 존재하는지 탐색하기
for(int i=0; i<phone_book; i++){
for(int j=0; j<phone_book[i]; j++){
if(phone_head.containsKey(phone_book[i].substring(0, j))) return false;
}
}
👩🏻💻 전체코드
import java.util.*;
class Solution {
// <전화번호, 인덱스>
private static Map<String, Integer> phone_head = new HashMap<>();
public boolean solution(String[] phone_book) {
// 정렬
Arrays.sort(phone_book);
// map 생성
for(int i=0; i<phone_book.length; i++){
phone_head.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(phone_head.containsKey(phone_book[i].substring(0, j))) return false;
}
}
return true;
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스 / Python] 요격 시스템 (0) | 2023.07.15 |
---|---|
[프로그래머스 / Python] 오픈채팅방 (0) | 2023.07.07 |
[프로그래머스 / Python] 택배 배달과 수거하기 (0) | 2023.06.27 |
[프로그래머스 / Python] 개인정보 수집 유효기간 (0) | 2023.06.24 |
[BOJ / Python] 14719 빗물 (0) | 2023.06.20 |