1. 이중 포문으로 배열 속 문자열 모두 비교
import sys
def solution(arr):
for num in arr:
cnt = 0
for num_ in arr:
if num_.startswith(num):
cnt += 1
if cnt == 2:
return False
return True
N = int(input())
#N = int(sys.stdin.readline())
for _ in range(N):
a = int(input())
arr = []
for a_ in range(a):
arr.append((sys.stdin.readline()).strip())
if solution(arr):
print("YES")
else:
print("NO")
시간 초과
2. 배열 정렬 후 앞 뒤 두 문자열만 비교
import sys
def solution(arr):
arr.sort()
for i in range(len(arr)-1):
if arr[i+1].startswith(arr[i]):
return False
return True
N = int(input())
for _ in range(N):
a = int(input())
arr = []
for a_ in range(a):
arr.append((sys.stdin.readline()).strip())
if solution(arr):
print("YES")
else:
print("NO")
메모리 : 29380KB
시간 : 208ms
arr[i+1].startswith(arr[i]): | 29380KB | 208ms |
arr[i] == arr[i+1][:len(arr[i])]: | 29380KB | 212ms |