문제
https://programmers.co.kr/learn/courses/30/lessons/42577
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public boolean solution(String[] phone_book) { int length = phone_book.length;
for (int i = 0; i < length; i++) { for (int j = 0; j < length; j++) { if (i == j) { continue; }
if (phone_book[j].startsWith(phone_book[i])) { return false; } } } boolean answer = true; return answer; }
|
흐름
배열을 전부 돌면서 해당 인덱스로 시장하는 단어가 있는 지 확인함
끝
결과
번호 |
속도 |
테스트 1 |
통과 (0.78ms, 52.1MB) |
테스트 2 |
통과 (0.52ms, 50.1MB) |
테스트 3 |
통과 (0.65ms, 52.6MB) |
테스트 4 |
통과 (0.51ms, 54.6MB) |
테스트 5 |
통과 (0.55ms, 52.2MB) |
테스트 6 |
통과 (0.66ms, 52.5MB) |
테스트 7 |
통과 (0.87ms, 50.3MB) |
테스트 8 |
통과 (0.77ms, 52.8MB) |
테스트 9 |
통과 (0.64ms, 52.3MB) |
테스트 10 |
통과 (0.57ms, 50.3MB) |
테스트 11 |
통과 (0.65ms, 52.8MB) |
번호 |
속도 |
테스트 1 |
통과 (1.96ms, 60.3MB) |
테스트 2 |
통과 (2.14ms, 59.8MB) |
테스트 케이스
1 2 3
| assertFalse(test.solution(new String[] {"119", "97674223", "1195524421"} )); assertTrue(test.solution(new String[] {"123","456","789"} )); assertFalse(test.solution(new String[] {"12","123","1235","567","88"} ));
|
여담
- 사실 당연히 시간 초과로 안될 줄 알았는데 넘어가서 놀랐다.
- 찾아보니 Trie 자료구조로 해결하길 바래서 카테고리가 해쉬 인 듯 싶다.
- 하지만 쉽게 풀 수 있는 문제를 어렵게 풀 이유가 없으니 이 문제는 이렇게 마무리 하려한다.