[BOJ]181:単語の並べ替え
🔒 例
>> 13
>> but
>> i
>> wont
>> hesitate
>> no
>> more
>> no
>> more
>> it
>> cannot
>> wait
>> im
>> yours
i
im
it
no
but
more
wait
wont
yours
cannot
hesitate
🔧 に答える
1. n = int(sys.stdin.readline().rstrip())
2. 중복제거: set 자료형 활용
3. 정렬: 길이 -> 알파벳 순서로 우선순위 부여하여 정렬
🔑 答案用紙
import sys
n = int(sys.stdin.readline().rstrip())
wrds = [sys.stdin.readline().rstrip() for _ in range(n)]
# 중복제거
wrds = list(set(wrds))
# 정렬
wrds = sorted(wrds, key=lambda x:(len(x), x))
print("\n".join(wrds))
💡 コンセプト
### set: 집합 자료형
# 중복 허용 X, 순서 x
l = ['a', 'a', 'b', 'c'] # list
s = set(l) # set
print(s) # ['a', 'b', 'c']
l = list(s) # 다시 리스트로 변환
print(l) # ['a', 'b', 'c']
### lambda 인자 : 표현식
# 함수를 한줄로 표현하는 식
a = (lambda x, y: x+y)(10, 20)
print(a) # 30
l = ['ab', 'abc', 'e', 'be']
# 알파벳 : ['ab', 'abc', 'be', 'e']
print(sorted(l))
# 단어의 길이 : ['e', 'ab', 'be', 'abc']
print(sorted(l, key=lambda x: len(x)))
# (우선순위) 단어길이 -> 알파벳 : ['e', 'ab', 'be', 'abc']
print(sorted(l, key=lambda x:(len(x), x)))
Reference
この問題について([BOJ]181:単語の並べ替え), 我々は、より多くの情報をここで見つけました https://velog.io/@ohhj1999/BOJ-1181テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol