저라면 읽어드린 string 앞에 문자길이를 붙여서 저장하고 sort를 하겠습니다.
"%02d"%(len(instr)) + instr 식으로 하면
01i
02iam
04wont
04wait
식으로 저장되니 길이를 포함해서 정렬이 될 것 같습니다.
그 다음에 출력할 때 word[2:] 식으로 하면...
1181번 - 단어 정렬
답변 감사합니다!!
사족으로 set()을 쓰시면 항목이 겹치지 않습니다. 따라서 이렇게 짧게 구현이 가능합니다.
from sys import stdin lists = set(stdin.readline().rstrip() for i in range(int(input()))) print('\n'.join(sorted(lists, key=lambda item: (len(item), item))))
댓글을 작성하려면 로그인해야 합니다.
time_to_bye 5년 전
안녕하세요. 1181번을 풀고 나서 비효율적인 방법을 개선해보고 싶어서 질문글을 남깁니다.
문제를 읽고 아래와 같이 생각하였습니다.
문제점 : 빈 리스트가 너무 많이 발생 할 수 있다.
질문 입니다.!!
문제점을 개선하려면 아예 초기부터 접근을 다르게 해야 할지, 아니면 제가 작성한 코드에서 관점을 바꾸면 길이 보일지 잘 모르겠습니다.
고수님들의 좋은 답변 부탁드립니다. : )