BAEKJOON /1181:단어정렬

hyihyi·2022년 1월 15일
2
post-thumbnail

[python] readline( )

🤔 input( )대신 sys.stdin.readline( )을 사용해야 할 때

여러 줄을 입력받아야 할 때
-->여러 줄을 입력받을 때 input( )을 쓰면 시간초과가 발생할 수 있다.
맨 첫줄 test case 입력받을 때는 input( )을 사용해도 무방

1. 한 개의 정수를 입력받을 때

  • 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='')
  1. set함수로 중복된 문자열들을 제거
  2. 다시 list로 변환
  3. list 정렬
  4. len을 key값으로 주고 len을 기준으로 정렬
profile
자유롭게 쓴 나의 자유로운 Development voyage⛵

1개의 댓글

comment-user-thumbnail
2022년 1월 19일

깔끔한 풀이 입니다 :)

답글 달기