프로그래머스/해시/전화번호 목록
글 작성자: Doublsb
https://programmers.co.kr/learn/courses/30/lessons/42577
풀이
- 119, 11 9552 4421이 있으면, 후자 접두에 119가 들어있으므로 false
- 접두어가 하나라도 존재한다면 false를 리턴하면 됨
- 119라면, 1, 11를 해시에 등록해두면 되는 거 아니냐
- C#을 지원하지 않아서 Java로만 풀었음
Java
import java.util.HashSet;
class Solution {
public boolean solution(String[] phone_book) {
HashSet<String> hash = new HashSet<String>();
for(String e : phone_book)
{
for(int i=1; i<e.length(); i++)
{
hash.add(e.substring(0, i));
}
}
for(String e : phone_book){
if(hash.contains(e)) return false;
}
return true;
}
}
결과
정확성 83.3 / 효율성 16.7 / 통과
피드백
처음에는 HashSet의 존재가 있는 줄 모르고, HashMap의 Value에 Int를 우겨넣어서 풀었다.
아무튼 키만 필요한 문제이므로, HashSet으로 다시 풀었더니, 소소한 효율성 테스트의 성능 향상을 보았음.
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
프로그래머스/위클리 챌린지/상호 평가 (0) | 2021.08.10 |
---|---|
프로그래머스/해시/베스트앨범 (0) | 2021.08.10 |
프로그래머스/해시/위장 (0) | 2021.08.07 |
프로그래머스/위클리 챌린지/부족한 금액 계산하기 (0) | 2021.08.06 |
프로그래머스/해시/완주하지 못한 선수 (0) | 2021.08.01 |
댓글
이 글 공유하기
다른 글
-
프로그래머스/해시/베스트앨범
프로그래머스/해시/베스트앨범
2021.08.10 -
프로그래머스/해시/위장
프로그래머스/해시/위장
2021.08.07 -
프로그래머스/위클리 챌린지/부족한 금액 계산하기
프로그래머스/위클리 챌린지/부족한 금액 계산하기
2021.08.06 -
프로그래머스/해시/완주하지 못한 선수
프로그래머스/해시/완주하지 못한 선수
2021.08.01