문제
알고리즘
- 테스트 케이스만큼 반복한다.
- 전화번호를 문자열로 입력받아 오름차순으로 정렬한다.(사전순으로 정렬)
- 반복문을 통해 전화번호를 확인한다.
- 현재 전화번호의 문자열과 다음 전화번호의 현재 전화번호 길이만큼의 문자열을 비교한다.
- 같으면 일관성이 없는 것이고 다르면 일관성이 있는 것이다.
코드
import sys
t = int(sys.stdin.readline())
for _ in range(t):
n = int(sys.stdin.readline())
call = [str(sys.stdin.readline().strip()) for _ in range(n)] # 전화번호를 문자열로 받는다.
call.sort() # 오름차순으로 정렬하여 사전순으로 정렬
chek = "yes" # 일관성이 있는지 체크
# 반복문을 통해 전화번호를 확인
for i in range(len(call) - 1):
# 현재 전화번호의 문자열과 다음 전화번호의 현재 전화번호 길이만큼의 문자열과 같은지 확인
# 같으면 일관성이 없는 것
if call[i] == call[i + 1][0:len(call[i])]:
chek = "no"
if chek == "no":
print("NO")
else:
print("YES")
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 4195번(파이썬): 친구 네트워크 (0) | 2021.10.10 |
---|---|
[baekjoon] 백준 11652번(파이썬): 카드 (0) | 2021.10.09 |
[baekjoon] 백준 9935번(파이썬): 문자열 폭발 (0) | 2021.10.07 |
[baekjoon] 백준 1976번(파이썬): 여행 가자 (0) | 2021.10.06 |
[baekjoon] 백준 1766번(파이썬): 문제집 (0) | 2021.10.05 |