백준 5052번 전화번호 목록 (난이도 : 中)
출처 : 백준 5052번 전화번호 목록
나의 풀이 in Python3
import sys
n = int(sys.stdin.readline())
real = False
for _ in range(n):
n_call = int(sys.stdin.readline())
# 전화번호 목록 - 문자열
cl = list(sys.stdin.readline().rstrip() for _ in range(n_call))
cl.sort()
for i in range(len(cl)-1):
# 문자열로 정렬되었으므로 바로 옆만 비교
if cl[i] in cl[i+1][:len(cl[i])]:
print("NO")
real = True
break
if real == False:
print("YES")
real = False
- 전화번호 목록 리스트화 및 문자열 정렬
- 문자열로 정렬되어있으므로 바로 옆 인덱스만 비교해주면 됨
중요 포인트는 2가지.
- sys 모듈 대신 input()을 쓰면, 시간 초과 문제 발생하니 주의
- 전화번호는 문자열로 인식되어 Ex) 정렬 시 '1234', '145', '12345' -> '1234', '12345', '145'
반응형
'Tests > 백준' 카테고리의 다른 글
[백준] 3012번 올바른 괄호 문자열 > 파이썬 (3) | 2021.07.22 |
---|---|
[백준] 1100번 하얀 칸 > 파이썬 (0) | 2021.07.20 |
[백준] 4673번 셀프 넘버 > 파이썬 (0) | 2021.07.18 |
[백준] 8958번 OX퀴즈 > 파이썬 (0) | 2021.07.18 |
[BOJ] 백준 17298번 오큰수 파이썬 (0) | 2021.05.26 |
댓글