728x90
https://yummy0102.tistory.com/193
오늘도 전에 푼 문제 다시 풀기~!
내일은 새로운 문제 풀어야지!!
알고리즘은 간단하다.
이 또한 해시를 사용하진 않고 문제의 꼼수를 약간 이용해줬다
전화번호 목록을 정렬하면 접두사가 같은 애들끼리 붙어 있을 수 밖에 없게 된다
그럼 정렬하고 앞과 뒤를 비교해주면서 앞의 문자열이 뒤의 시작과 같은 경우 접두사니까 answer는 false를 반환한다
Java에서도 마찬가지로 substring을 사용하였다.
substring(시작, 끝)을 넣어주고 .equals로 문자열 비교해주면 된당!
자바 코드)
import java.util.*;
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++) {
String now = phone_book[i];
String next = phone_book[i+1];
if(now.length()<=next.length()) {
if(next.substring(0,now.length()).equals(now)) {
answer=false;
break;
}
}
}
return answer;
}
}
그럼 내일은 신상 문제로 만납시당 빠잉!
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[정렬] Level 2 가장 큰 수 - JAVA (0) | 2022.02.20 |
---|---|
[이분탐색] Level 3 입국심사 (0) | 2022.02.14 |
[해시] Level 1 완주하지 못한 선수 - JAVA (0) | 2022.02.11 |
[탐욕법(Greedy)] Level 1 체육복 - JAVA (0) | 2022.02.10 |
[정렬] Level 1 K번째 수 (0) | 2022.02.09 |
댓글