Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- react
- SessionAttribute
- 인턴 지원
- JSTL
- 소프트웨어 개발보안 경진대회
- 행정지역 DB
- 인턴 후기
- 소개딩
- 동읍면 DB
- restapi
- 메모리 포랜식
- EER
- 정보보호병 후기
- webhacking 처음
- riceteacatpanda
- Database
- reversing.kr
- PyAmdecoder
- frontend
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- DBMS
- Forensic 절차
- spring
- jsp
- 네이버 인턴
- 방명록 만들기
- Layered Architecture
- mysql
- Django
- 3단계 지역 DB
Archives
- Today
- Total
웹찢남
[백준 5052 전화번호 목록 문제] PYTHON 본문
이번 문제는 접두어를 체크하는 문제로 파이썬 문자열의 특성과 sort의 특성만
잘 이해하고 있다면 어렵지 않은 문제다.
파이썬에서 [123, 12000, 123000]을 sort하면 크기 순서대로 같은 값이 나오지만
['123', '12000', '123000']을 sort하면 ['12000', '123', '123000'] 이렇게 맨 앞의 문자열을 기준으로 정렬한다.
이 특성을 살리면 배열의 앞과 뒤만 잘 확인하면 접두어를 체크할 수 있다,
from sys import stdin
input = stdin.readline
N = int(input())
for _ in range(N):
answerflag = True
M = int(input())
nlist = []
for j in range(M):
nlist.append(input().strip())
nlist.sort()
for k in range(len(nlist)-1):
if nlist[k] in nlist[k+1][0:len(nlist[k])]:
print('NO')
answerflag = False
break
else:
continue
if answerflag:
print('YES')
많은 input을 받기 때문에 sys의 stdin.readline을 통해 시간을 단축시켜야 시간초과가 안생긴다.
또한 stdin.readline은 \n까지 받기 때문에 strip을 통해 제거해야한다.
'백준 Algorithm' 카테고리의 다른 글
[백준 15649 N과 M 문제] PYTHON (0) | 2021.08.10 |
---|---|
[백준 2800 괄호 제거 문제] PYTHON (0) | 2021.07.28 |
[백준 5430 AC 문제] PYTHON (0) | 2021.07.20 |
[백준 9461 파도반 수열 문제] PYTHON (0) | 2021.07.12 |
[백준 11057 오르막 수 문제] PYTHON (0) | 2021.07.12 |
Comments