문제
https://www.acmicpc.net/problem/1181
풀이
import sys
def main():
N = int(sys.stdin.readline())
lst = []
for _ in range(N):
word = str(sys.stdin.readline().strip())
count = len(word)
lst.append((count, word))
lst1 = list(set(lst))
lst1.sort()
for count, word in lst1:
print(word)
main()
첫 번째 for문에서 입력해주는 단어의 길이를 구해 리스트에 같이 넣어줍니다.
그리고 중복을 제거해야하기 때문에 lst를 set에 넣어주고 다시 list에 넣어 lst1에 저장합니다.
sort를 하면 먼저 숫자를 기준으로 하기 때문에 길이가 짧은 단어 순서로 정렬을 하고
숫자가 같을 때는 단어의 아스키코드를 비교해 작은 것을 기준으로 정렬합니다.
두 번째 for문에서는 현재 lst1의 각 요소가 count, word 두 개이기 때문에 2개를 받아야 합니다.
하나를 받을 경우에 (3, but) 이런 식으로 출력됩니다.
결과
'IT > 알고리즘' 카테고리의 다른 글
알고리즘 - 선형 검색 (0) | 2020.10.21 |
---|---|
1일 N알고리즘 - #44 (0) | 2020.07.01 |
1일 N알고리즘 - #42 (0) | 2020.07.01 |
1일 N알고리즘 - #41 (0) | 2020.06.11 |
1일 N알고리즘 - #40 (0) | 2020.06.09 |
댓글