[BOJ] 1181. 단어 정렬

Jimeaning·2023년 4월 12일
0

코딩테스트

목록 보기
79/143

Python3

문제

https://www.acmicpc.net/problem/1181

키워드

  • 구현
  • 정렬

문제 풀이

문제 요구사항

  • 단어 n개를 입력받는다
  • 단어는 길이가 짧은 것부터
  • 길이가 같으면 사전 순으로
  • 중복된 단어는 하나만 남기고 제거해야 한다.

변수 및 함수 설명

n: 입력받을 단어의 개수
words: 입력받은 단어 리스트
set_words: 중복을 제거한 단어 리스트

로직

  • 단어의 개수 n을 입력받는다
  • n개의 단어를 입력받고, words 리스트 안에 넣는다
  • set_words에 중복값을 없앤 words 리스트를 넣는다
  • set_words를 알파벳 순서에 따라 정렬한다
  • set_words를 길이 순서에 따라 정렬한다

최종 코드

n = int(input())
words = []

for i in range(n):
    words.append(input())

set_words = set(words)
set_words = sorted(set_words)
set_words = sorted(set_words, key = len)

for i in set_words:
    print(i)
    

피드백

배운점

  • 리스트 내 중복을 제거하고자 할 때는 set() 함수 사용!
  • 리스트를 특정 조건으로 제거하고 싶을 때는 sorted(리스트, key= 조건)
  • sort() vs sorted()
    - sorted 함수는 정렬된 새로운 리스트를 리턴시켜준다.
    반면에 sort 메소드는 아무것도 리턴시켜주지 않는다(None을 리턴시켜줌).
    • sorted 함수는 원 리스트에 영향을 주지 않고, 새로운 리스트를 만들어 리턴해준다.
      반면에 sort 메소드는 원 리스트 자체를 정렬해버린다.

참고

https://www.codeit.kr/community/questions/UXVlc3Rpb246NWUzNDUyMjU4MGU1MTMzNzNkOTYxZTRm

profile
I mean

0개의 댓글