https://www.acmicpc.net/problem/5052
업로드하지 않은 정렬 알고리즘이 생각나서 다시 정렬로 회귀. 이상하게 실제 문제에서는 배운 알고리즘들을 쓸 기회도 없이 sort() 함수를 쓰게 되는 것 같다. 이러다 망각하면 억울할 것 같은데...
5052는 언젠가 프로그래머스에서 마주친 듯한 문제다. 골드4에 랭크되어 있어서 살짝 겁을 먹고 풀었지만, 알고 보니 은근 골드급 문제를 많이 풀어왔더라. 결론적으로 이문제는 'in' 함수를 쓰느냐 인덱스로 살짝 장난을 치느냐의 미묘한 차이가 있고 개인적으로 후자를 적용시키는 게 훨씬 효율적이지 않나 싶다.
요새 is_break의 매력에 푹빠졌는데, 알고리즘틱해서 괜히 한 번 쓰고 싶어 진다. 이렇게 변태가 되어가나 보다.
# PYTHON CODE
import sys
n = int(sys.stdin.readline())
s = []
for i in range(n):
k = int(sys.stdin.readline())
s = [str(sys.stdin.readline().rstrip()) for _ in range(k)]
s.sort()
is_break = False
for j in range(k - 1):
p = len(s[j])
if s[j] in s[j + 1][:p]:
is_break = True
break
print('NO' if is_break else 'YES')
'백준 > 정렬' 카테고리의 다른 글
[Python] 백준, 1026(정렬) (0) | 2021.08.22 |
---|---|
[Python] 백준, 10814(정렬) (0) | 2021.08.20 |
[Python] 백준, 1181(정렬) (0) | 2021.08.19 |
[Python] 백준, 1427(정렬) (0) | 2021.08.18 |
[Python] 백준, 2751(정렬) (0) | 2021.08.18 |