[고득점 kit] 전화번호 목록

화낼거양's avatar
Nov 20, 2024
[고득점 kit] 전화번호 목록
Contents
문제정답
 
 

문제

 
notion image
 
기본적으로 주어진 코드 :
class Solution { public boolean solution(String[] phone_book) { boolean answer = true; return answer; } }
 

정답

 
import java.util.Arrays; class Solution { 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. 정렬:
      • Arrays.sort(phoneBook)을 사용하여 문자열 배열을 사전순으로 정렬합니다. 이로 인해 접두사 관계가 있는 문자열이 인접하게 배치됩니다.
      • 예를 들어, ["119", "97674223", "1195524421"]를 정렬하면 ["119", "1195524421", "97674223"]가 됩니다.
  1. 접두사 확인:
      • 정렬된 배열을 순회하면서 각 요소가 다음 요소의 접두사인지 확인합니다.
      • phoneBook[i + 1].startsWith(phoneBook[i])를 사용하여 다음 문자열이 현재 문자열로 시작하는지 확인합니다.
      • 만약 접두사 관계가 발견되면 즉시 false를 반환하여 접두사 관계가 있음을 나타냅니다.
  1. 결과 반환:
      • 배열을 끝까지 순회해도 접두사 관계가 발견되지 않으면, true를 반환하여 접두사 관계가 없음을 나타냅니다.
Share article

moohyun