알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.
길이가 짧은 것부터
길이가 같으면 사전 순으로
출처 : https://www.acmicpc.net/problem/1181
- mine
- 입력 받을 때 조건문을 활용하여 중복을 제거한다.
- 길이 순으로 정렬 후 크기 순으로 정렬한다. (오름차순)
- clone
- 입력 받을 때 set을 활용하여 중복을 제거한다. (❗정렬을 위해 list로 다시 돌려준다.❗)
- 길이 순으로 정렬 후 크기 순으로 정렬한다. (오름차순)
mine
n = int(input()) input_string = [] # 입력 for i in range(n): temp = input() if temp not in input_string: # 중복이 아닌 단어만 리스트에 추가 input_string.append(temp) # 길이 순서로 정렬한 후 같은 길이에서는 크기 순서로 정렬 input_string.sort(key=lambda x : (len(x), x)) # 출력 for result in input_string: print(result)
clone
N = int(input()) word = [] for _ in range(N): word.append(input()) word = list(set(word)) word.sort(key=lambda x : (len(x),x)) print("\n".join(word))
1. mine
2. clone