[Python] BOJ 1181: 단어 정렬

Binsu·2021년 8월 11일
0

Algorithms

목록 보기
2/22

아이디어

  1. 정수 N을 입력받고 반복문으로 N값만큼 유저로부터 단어를 순차적으로 입력받아 배열에 저장
  2. len() 함수로 리스트 내 각 원소의 길이를 파악
  3. 리스트 내 중복을 제거
  4. 리스트 내 각 원소의 길이가 같을 때 알파벳 순으로 정렬

코드

N = int(input())
li = []

for i in range(N):
    word = str(input())
    li.append(word)

li_set = set(li)    # set으로 변환하여 li 리스트 내 중복 제거
Result_list = list(li_set)  # set을 다시 리스트로 변환
Result_list = sorted(Result_list, key=len)  # 원소의 길이를 기준으로 오름차순 정렬
Result_list = sorted(Result_list, key=lambda x: (len(x), x))  # 길이가 같을 때 알파벳 순으로 정렬

for j in range(len(Result_list)):
    print(Result_list[j])

배운점

문제를 제대로 안봐서 사전 순으로 정렬하는 조건을 넣지 않아 계속 실패했다. 집중해서 읽어야겠다.

  • sorted() 함수의 len, lambda 조건

0개의 댓글