[파이썬][백준 5052][💛골드 4] 전화번호 목록 (해시, 트라이)
Categories: BOJ
Tags: Coding Test Python Algorithm
🧞♂️ 난이도
💛 골드 4
🧞♂️ 문제
🧞♂️ 내 풀이
프로그래머스의 “전화번호 목록” 문제와 비슷하다 LeetCode에서도 비슷한 문제 풀어본 기억이 있는것 같다.
주어진 입력 숫자들을 오름차순으로 정렬시킨다
예를 들어 911, 97625999, 91125426 는 911, 91125426, 97625999,
이런식으로 정렬을 시켜셔
i 랑 i+1 만 비교하면 된다
100%까지 통과 성공하다가 틀렸습니다가 나와서 뭔가 하다가
생각해보니까 “접두어” 만 비교하는거였다 그래서 접두어만 확인하는 조건을 추가해주니까 통과됐다
🧞♂️ 파이썬 코드
import sys
input = sys.stdin.readline
tc = int(input())
for _ in range(tc):
N = int(input())
# 입력 숫자들 정렬
nums = sorted([input().rstrip() for _ in range(N)])
# 일관성이 계속 유지되는지 확인
unique = True
for i in range(1, len(nums)):
length = len(nums[i-1])
if nums[i-1] in nums[i][:length]:
unique = False
break
if unique:
print('YES')
else:
print('NO')