HashSet을 이용해서 문제를 풀어봤습니다.
Key 값만 필요하고 Value는 필요없기 때문에 중복없이 데이터를 저장하는 HashSet을 이용했습니다.
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
/*
같은 전화번호가 중복해서 들어있지 않기 때문에
set을 이용하면 된다.
대신 set은 순서 없이 저장된다.
그리고 인덱스로 값을 참조할 수 없다.
*/
HashSet<String> hashset = new HashSet<>();
for(String phone: phone_book){
hashset.add(phone);
}
for(String phone: phone_book){
for(int i = 1; i < phone.length(); i++){
String prefix = phone.substring(0, i);
if(hashset.contains(prefix))
answer = false;
}
}
return answer;
}
}
향상된 for문을 이용해서 phone_book 배열의 전화번호를 문자열로 받아 hashset에 넣습니다.
다시 향상된 for문을 이용해서 접두어를 검사합니다.
문자열의 일부분을 추출하는 substring을 이용하고, contains 메서드를 활용해 접두어의 유무를 확인할 수 있습니다.
.
.
.
문제는 아래에서 확인할 수 있습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120845
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스_JAVA_알고리즘] 문자열 정렬하기 (2) #정렬 (1) | 2024.11.02 |
---|---|
[프로그래머스_JAVA_알고리즘] H-Index #정렬 (0) | 2024.11.01 |
[프로그래머스_JAVA_알고리즘] 가장 큰 수 #정렬 (1) | 2024.10.31 |
[프로그래머스_JAVA_알고리즘] 주사위의 개수 #해시 (0) | 2024.10.24 |
[프로그래머스_JAVA_알고리즘] K번째수 (0) | 2024.10.13 |