얼렁뚱땅 백준 문제풀이
[백준 문제풀이] 얼렁뚱땅 5052번 전화번호 목록 풀이
MOSTAR
2022. 3. 21. 17:07
오랜만에 했다
화났었다.
자꾸 시간초과떠서 화나서
구글링해서 다른 분 코드로 해봤는데도 시간초과였다.
사람차별하나 ㅡㅡ
import sys
test = int(input())
def check (array) :
for i in range(len(array)-1) :
if array[i] == array[i+1][0:len(array[i])]:
print("NO")
return
print("YES")
for i in range(test) :
n = int(input())
array = [sys.stdin.readline().strip() for i in range(n)]
array.sort()
check(array)
이번에 알게 된 점은
사실 sys로 읽어야 더 빠르다는 얘기를 듣긴 했는데, 나는 한번도 input()쓰고 이거때매
시간초과 났을 거라고 생각도 안했고, 비교를 안해봐서 몰랐는데
이번에 array받을 때 for문으로 input()쓰니까 그건 시간초과 뜨고 이건 안난다
진짜 중요하긴 한가보다
아 나는 처음 시도를 할 때, 글자 수로 정렬을 하였다
array.sort(lambda x:len(x))
왜냐면, 나는 이중 포문을 쓰려고 했고, 글자 수 대로 정리를 한다음에
작은 글자 쪽에 있는 애들부터 뒤에 애들이랑 맨 앞부분이 같은지 비교하면 된다고 생각했기 때문이다
그리고 무엇보다도 a = '1234' 일 때, 글자수가 넘어가도록 a[:7]이런식으로 하면 오류가 날 줄 알았기 때문에
글자 수대로 정렬을 하고 해야겠다고 생각한거다
근데 오류 안난다 ^__________________________________^
................
파이팅 민지