반응형
코드
import sys
t = int(input())
for _ in range(t):
n_list = []
flag = 0
n = int(input())
for _ in range(n):
n_list.append(sys.stdin.readline().rstrip())
n_list.sort()
for i in range(n-1):
if n_list[i+1][:len(n_list[i])] == n_list[i]:
flag = -1
break
if flag == -1:
print("NO")
else:
print("YES")
설명
[911, 97625999, 91125426]의 경우 정렬을 시키면 [911, 91125426, 97625999]가 된다.
따라서 입력받은 문자열을 정렬시킨 후 앞,뒤의 문자열끼리만 비교를 해주면 된다.
반응형
'알고리즘 > 문자열' 카테고리의 다른 글
[백준][Python] 11478번 서로 다른 부분 문자열의 개수 (0) | 2022.11.04 |
---|---|
[백준][Python] 11656번 접미사 배열 (0) | 2022.10.21 |
[백준][Python] 2204번 도비의 난독증 테스트 (0) | 2022.07.19 |
[백준][Python] 11365번 !밀비 급일 (0) | 2022.07.19 |
[백준][Python] 16916번 부분 문자열 (0) | 2022.07.01 |
댓글