[백준] 5052 - 전화번호 목록

fooooif·2021년 7월 7일
0
post-thumbnail

✍ 문제


문제링크: 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)








profile
열심히 하자

0개의 댓글