728x90
※ 해당 문제의 링크는 여기입니다. ※
위 방식은 HashSet 방식을 사용하는 방식이 있지만
배열로만 해결하였습니다.
public boolean solution(String[] phoneBook) {
Arrays.sort(phoneBook);
for (int i = 0; i < phoneBook.length - 1; i++) {
if (phoneBook[i + 1].startsWith(phoneBook[i])) {
return false;
}
}
return true;
}
- 전화부를 정렬합니다.
- 전화부 길이 - 1 까지 for문을 돌립니다.
- 전화부[i + 1]의 시작부분이 현재 전화부 번호이라면 false를 반환합니다.
- 전부 다 찾았는 데도 false가 반환되지않았다면 중복이 없으므로 true를 반환합니다.
위는 String이므로 Integer처럼이 아닌
앞숫자 순으로 정렬을 합니다.
(아스키코드 순으로 정렬하기 때문)
이상입니다.
'공부 > 알고리즘, 자료구조' 카테고리의 다른 글
[프로그래머스] 기능개발 (0) | 2022.02.14 |
---|---|
[프로그래머스] K번째 수 (0) | 2022.02.12 |
[프로그래머스] 베스트 앨범 (0) | 2022.02.11 |
[프로그래머스] 위장 (0) | 2022.02.10 |
[프로그래머스] 완주하지 못한 선수 (0) | 2022.02.08 |