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;
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 에서 자주 사용되는 메소드에 대해 파악이 필요하다.
- 사전순 정렬 결과를 예측할 수 있어야 했다.