여러 줄을 입력받아야 할 때
-->여러 줄을 입력받을 때 input( )을 쓰면 시간초과가 발생할 수 있다.
맨 첫줄 test case 입력받을 때는 input( )을 사용해도 무방
readline( )은 한 줄 단위로 입력받기 때문에 개행문자가 같이 입력받아짐
또한, 문자열 형태로 저장되기 때문에 정수형으로 사용하려면 형변환을 해줘야함
<문제 설명>
문자열 여러 개를 입력받은 후 길이 순대로 정렬하고 만약 길이가 같다면 사전 순으로 정렬하는 프로그램을 작성해보자
<문제 풀이>
import sys
n=int(input())
lst=[] #입력받을 리스트 만들어주기]
for i in range(n): #n수만큼 리스트 채워주기
lst.append(sys.stdin.readline()) #문자열 여러줄을 입력받아 리스트에 저장
set_lst=set(lst) #set함수를 사용해 리스트에서 중복된 값 제거
lst=list(set_lst) #다시 리스트로 만들어주기
lst.sort() #알파벳 순으로 리스트 정렬
lst.sort(key=len) #len을 key값으로 주고 len값을 기준으로 정렬
for i in lst: #정렬된 문자열들 하나하나 출력
print(i, end='')
- set함수로 중복된 문자열들을 제거
- 다시 list로 변환
- list 정렬
- len을 key값으로 주고 len을 기준으로 정렬
깔끔한 풀이 입니다 :)