티스토리 뷰
[문제 링크]
https://school.programmers.co.kr/learn/courses/30/lessons/42577
import java.util.Arrays;
import java.util.HashSet;
class Solution {
public boolean solution(String[] phone_book) {
HashSet<String> set = new HashSet<>(Arrays.asList(phone_book));
boolean answer = true;
for (String phoneNumber : phone_book) {
for (int i = 1; i < phoneNumber.length(); i++) {
if (set.contains(phoneNumber.substring(0, i))) {
answer = false;
}
}
}
return answer;
}
}
hashset의 contains는 시간 복잡도가 O(1)로 빠르게 동작함.
일단 set을 생성하고 전화번호들을 다 넣어둠.
phone_book에서 요소를 하나씩 꺼내오고, for문을 요소를 앞에서부터 한글자씩 늘려가면서 잘라봄.
그래서 그게 set에 있으면 접두사로 붙은 거니까 false를 리턴해줌.
'알고리즘 문제' 카테고리의 다른 글
| [hackerrank] Quicksort 1 - Partition - JAVA (0) | 2023.04.14 |
|---|---|
| [hackerrank] CorrectnessAndTheLoopInvariant (삽입정렬) (0) | 2023.04.13 |
| [프로그래머스] 위장 - JAVA (0) | 2023.04.13 |
| [프로그래머스] 실패율 구하기 (0) | 2023.01.01 |
| [프로그래머스] 피보나치 수 (0) | 2022.12.24 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- jmeter테스트
- hackerrank
- Redisson
- Java
- Redis
- 토큰
- 스프링faker
- Python
- 부하테스트시나리오
- jmeter시나리오
- Lock
- pessimisticlock
- CheckedException
- jmeter쿠키
- 동적크롤링
- 인덱스
- bankersRounding
- jmeter세션
- index
- jmeter토큰
- EC2
- CorrectnessAndTheLoopInvariant
- 프로그래머스
- 대규모더미데이터
- jmeter로그인
- 항해
- jwt
- 자바
- jmeter부하테스트
- Spring
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
글 보관함