티스토리 뷰
문제 설명
- 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.
- 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.
- 구조대 : 119
- 박준영 : 97 674 223
- 지영석 : 11 9552 4421
- 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.
제한 사항
- phone_book의 길이는 1 이상 1,000,000 이하입니다.
- 각 전화번호의 길이는 1 이상 20 이하입니다.
입출력 예
입출력 예 설명
예제 #1
- 앞에서 설명한 예와 같습니다.
예제 #2
- 한 번호가 다른 번호의 접두사인 경우가 없으므로, 답은 true입니다.
예제 #3
- 첫 번째 전화번호, “12”가 두 번째 전화번호 “123”의 접두사입니다. 따라서 답은 false입니다.
문제 풀이
나의 풀이
public boolean solution(String[] phone_book) {
Map<String, String> map = new HashMap<>();
for (String s : phone_book) {
map.put(s, s);
}
for (String s : phone_book) {
if(map.keySet().stream().anyMatch(e -> !e.equals(s) && e.startsWith(s))) {
return false;
}
}
return true;
}
이상적인 답안
public boolean solution(String[] phoneBook) {
for(int i=0; i<phoneBook.length-1; i++) {
for(int j=i+1; j<phoneBook.length; j++) {
if(phoneBook[i].startsWith(phoneBook[j])) {return false;}
if(phoneBook[j].startsWith(phoneBook[i])) {return false;}
}
}
return true;
}
- 그리 이상적으로 보이진 않지만 다른 답안들 전부 Hash를 쓰지 않고 loop를 도는 식으로 구현을 했다.
- 그 중에 가장 심플한 코드로 가져와봤다.
참고
끝으로
이 글이 도움이 되었다면, 하단의 Google 광고 👎👎👎 한번씩 클릭 부탁 드립니다. 🙏🙏🙏
광고 클릭은 많은 힘이 됩니다!
반응형
'프로그래밍 > Algorithm' 카테고리의 다른 글
[프로그래머스] 완주하지 못한 선수 (0) | 2020.03.07 |
---|---|
[알고리즘] 두 단어로의 약어(initials) 구하기 (0) | 2019.11.07 |
[알고리즘] Java 자연수의 조합(경우의 수) 구하기 (0) | 2019.11.07 |
(알고리즘) 자연수 범위중 팰린드롬(palindrome)개수 구하기 (0) | 2019.11.07 |
[algorithm] 선택 정렬(Selection Sort) (0) | 2016.12.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 텐트
- java
- JavaFX Window Close
- 이펙티브 자바
- 일본 여행
- git
- JavaFX 종료
- 이펙티브자바
- effectivejava
- 이펙티브
- 자전거
- 일본 배낭여행
- 일본 자전거 여행
- TableView
- 배낭 여행
- effective java
- JavaFX Table View
- 자바
- Java UI
- 방통대 과제물
- intelij
- 배낭여행
- springboot
- JavaFX 테이블뷰
- windows
- 일본여행
- 자전거 여행
- 인텔리제이
- JavaFX
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
글 보관함