BAEKJOON #5052 전화번호 목록
2020. 4. 6. 22:03ㆍ개발노트
이 문제의 저작권은 BAEKJOON에 있습니다.
https://www.acmicpc.net/problem/5052
문제는 위 링크에서 확인할 수 있습니다.
#전화번호 목록
#https://www.acmicpc.net/problem/5052
import sys
def checker(get_phonenum):
for j in range(0, N - 1):
get_len = len(get_phonenum[j])
if get_phonenum[j] == get_phonenum[j+1][:get_len]:
return 'NO'
return 'YES'
TC = int(sys.stdin.readline())
for tc in range(TC):
N = int(sys.stdin.readline())
get_phonenum = []
for n in range(N):
get_phonenum.append(sys.stdin.readline().rstrip())
#yes / no 판별
get_phonenum = sorted(get_phonenum)
print(checker(get_phonenum))
풀이
겹치는 전화번호가 있는지 판별해야 합니다.
만약에 겹치는 전화번호가 하나라도 있다면 YES를 출력하고
그렇지 않다면 NO를 출력합니다.
비교해주기 위해 입력 받은 배열을 사전순으로 정렬합니다. (sorted 를 사용)
정렬이 된 for문으로 배열을 돌며 앞에 있는 요소와 전화번호가 같은지 비교합니다.
앞에 있는 전화번호의 문자열 크기 만큼 뒤에 있는 요소를 자르고 같은지 비교합니다.