728x90
반응형
문제 링크
programmers.co.kr/learn/courses/30/lessons/42577
* 프로그래머스 - Level 2 - HashSet과 Substring을 이용한 중복 값 찾기
< 로직 >
* 전화번호 목록을 0부터 시작할 수 있게, 오름차순 정렬을 한다
* 정렬된 데이터의 각 요소를 substring하며 Hashset에 저장되어 있는지 확인한다
* 저장되어 있다면 return false
* 저장되어있지 않다면 return true
import java.util.Arrays;
import java.util.HashSet;
class Solution {
public boolean solution(String[] phone_book) {
Arrays.sort(phone_book); // 오름차순 정렬
HashSet<String> set = new HashSet<String>();
boolean answer = true;
for(int i = 0; i < phone_book.length; i++) {
String number = phone_book[i]; // 현재 확인할 전화번호
for(int idx = 0; idx < number.length(); idx++) { // 각 문자를 모두 확인
if(set.contains(number.substring(0, idx))) { // substring된 문자 확인
answer = false; // 이미 있는 접두사
break;
}
}
if(!answer) break;
set.add(number); // 없는 접두사라면 Hash저장
}
return answer;
}
}
반응형
'문제풀이 > Programmers 문제풀이' 카테고리의 다른 글
[ 알고리즘 ] 코딩 - Programmers - 뉴스클러스터링.java (0) | 2021.01.27 |
---|---|
[ 알고리즘 ] 코딩 - Programmers - JadenCase.java (0) | 2021.01.26 |
[ 알고리즘 ] 코딩 - Programmers - 행렬의 곱셈.java (1) | 2021.01.23 |
[ 알고리즘 ] 코딩 - Programmers - 소수찾기.java (0) | 2021.01.22 |
[ 알고리즘 ] 코딩 - Programmers - 카펫.java (0) | 2021.01.21 |