얼렁뚱땅 백준 문제풀이

[백준 문제풀이] 얼렁뚱땅 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]이런식으로 하면 오류가 날 줄 알았기 때문에

글자 수대로 정렬을 하고 해야겠다고 생각한거다

근데 오류 안난다 ^__________________________________^

................

파이팅 민지