티스토리 뷰

반응형

https://www.acmicpc.net/problem/5052

 

5052번: 전화번호 목록

첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가

www.acmicpc.net

 


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 자료 구조
  • 문자열
  • 정렬
  • 트리
  • 트라이

 


 

⊙ 문제 접근 과정

 

일관성 여부를 boolean을 이용하여 체크해주었다.

 

1️⃣ 배열을 만들어주고 값을 순서대로 넣어준다.

 

2️⃣ 그리고 값을 정렬해주는데 string 기준으로 정렬해준다.

 

3️⃣ 현재 전체 값이 다음 값에 부분집합에 포함된다면 boolean을 꺼준다.

 

4️⃣ boolean이 켜져 있으면 일관성이 있고, 꺼져있으면 일관성이 없는 전화번호 부이다.

 

 

아래에 있는 전체 코드를 확인해보자


 

⊙ 문제 풀이

 

T = int(input())

for _ in range(T):
    N = int(input())

    phonebook = []

    for _ in range(N):
        phonebook.append(input())

    phonebook.sort(key=str)

    flag = True

    for i in range(len(phonebook)-1):
        if phonebook[i] == phonebook[i+1][:len(phonebook[i])]:
            flag = False
            break

    if flag:
        print("YES")
    else:
        print("NO")

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함