문제링크: https://www.acmicpc.net/problem/5052
문자열에 관한 문제이다. for문을 2번써서 돌려보려 했더니 시간초과가 나와서 sort함수를 사용해 i i+1 만 비교할 수 있게 해주었다.
import sys
def find_answer_1(phone_list):
for i in range(len(phone_list)):
for j in range(len(phone_list)):
if i == j:
continue
if len(phone_list[i]) > len(phone_list[j]):
if phone_list[j] == phone_list[i][0:len(phone_list[j])]:
print("NO")
return
else:
if phone_list[i] == phone_list[j][0:len(phone_list[i])]:
print("NO")
return
print("YES")
def find_answer_2(phone_list):
for i in range(len(phone_list) - 1):
if phone_list[i] == phone_list[i+1][0:len(phone_list[i])]:
print("NO")
return
print("YES")
t = int(sys.stdin.readline())
for _ in range(t):
n = int(sys.stdin.readline())
phone_list = []
for _ in range(n):
phone_list.append(sys.stdin.readline().strip())
phone_list.sort()
find_answer_2(phone_list)