[백준 5052] 전화번호 목록

Junyoung Park·2022년 3월 1일
0

코딩테스트

목록 보기
144/631
post-thumbnail

1. 문제 설명

전화번호 목록

2. 문제 분석

접두사를 비교해 다른 전화번호 목록에 있다면 일관적이지 않은 전화번호가 된다.

  • 중첩 루프를 탈출하기 위해 가장 좋은 방법은 함수를 통해 곧바로 return한다. 반복문을 사용했을 때에는 매번 if로 비교해주어서 시간 초과가 났지만, 함수를 선언하니 중첩 함수를 탈출할 때 내부 탈출 조건만 만족되면 곧바로 함수를 종료할 수 있기 때문이다.

3. 나의 풀이

import sys

t = int(sys.stdin.readline().rstrip())

for _ in range(t):
    n  = int(sys.stdin.readline().rstrip())
    cases = []
    for _ in range(n):
        cases.append(sys.stdin.readline().rstrip())
    cases.sort()

    def valid_check():
        for i in range(n-1):
            length = len(cases[i])
            for j in range(i+1, n):
                if cases[i] == cases[j][:length]:
                    return False
        return True

    if valid_check(): print('YES')
    else: print('NO')
profile
JUST DO IT

0개의 댓글