프로그래머스 LV.2 전화번호 목록
1. 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42577
2. 문제 해결에 대한 아이디어
- 이 문제를 풀기 위해서는 사전 지식 두개가 필요했다.
- 문자열에 대한 정렬
- 문자열 배열을 기본 정렬할 경우 사전 순으로 정렬된다.
- 정렬된 이후 i+1번째 문자열은 i번째 문자열과
1) 같거나
2) i번째 문자열 + @ 이거나
3) 이 외 사전 순서상 뒤이다.
- StringA.startsWith(StringB)
- StringA가 StringB로 시작하는지 확인한다.
3. 코드
import java.util.Arrays;
public class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
/**
* 사전 순으로 정렬하게 되면
* i+1번째 문자열은 i번째 문자열과
*
* 1) 같거나
* 2) i번째 문자열 + @ 이거나
* 3) 이 외 사전 순서상 뒤 이다.
*/
Arrays.sort(phone_book);
for (int i = 0; i < phone_book.length - 1; i++) {
if (phone_book[i + 1].startsWith(phone_book[i])) {
answer = false;
break;
}
}
return answer;
}
}
4. 채점 결과
5. 느낀 점
- String 에서 자주 사용되는 메소드에 대해 파악이 필요하다.
- 사전순 정렬 결과를 예측할 수 있어야 했다.
'알고리즘 > 프로그래머스 LV.2' 카테고리의 다른 글
프로그래머스 LV.2 오픈채팅방 (0) | 2022.01.12 |
---|---|
프로그래머스 LV.2 카카오프렌즈 컬러링북 (1) | 2022.01.11 |
프로그래머스 LV.2 게임 맵 최단거리 (0) | 2022.01.10 |
프로그래머스 LV.2 위장 (0) | 2021.09.24 |
프로그래머스 LV.2 프린터 (0) | 2021.09.23 |
댓글