it 지식/백준 문제 중 자잘한 문법 정리

백준 - 파이썬 1157 단어 정렬

곰종 2023. 1. 16. 17:12

문제 내용

문제 예시

내가 푼 방법

주의 할 점 sort를 쓸 때, 두 번을 진행하였는데 최종결과물이 내가 원하는 대로 나오려면 순서를 맞춰야함

ex) 길이순으로 정렬 한 후(word.sort(key=len)) 다시 오름차순(word.sort())으로 정렬하면 

최종적으로는 오름차순으로 정렬하게 됨 따라서 오름차순으로 정렬 한 후 거기서 길이를 맞춰야함

+ input() 보다는 sys.stdin.readline()이 훨씬 빠르다.

1
2
3
4
5
6
7
8
9
10
11
n = int(input())
word = []
for _ in range(n):
    word.append(input())
 
word = list(set(word))
word.sort()
word.sort(key=len)
 
for i in range(len(word)):
    print(word[i])
cs

 

총 단어의 갯수 n을 입력받고, word 리스트를 생성하여 단어 하나하나 씩 word 에 append한다

6번라인에서 중복값을 제거하고

7번라인에서 알파벳 오름차순으로 정렬 한 다음

8번 라인에서 길이순으로 또 한번 정렬한다.

이 문제에서 출력을 한 줄씩 출력하기에 for문으로 len(word) 최종 길이만큼 반복하고 list 앞부터 출력한다.

 

주요 문법 : sort()

정렬도 이렇게 저렇게 정렬하는 방법이 있다는걸 알게 되었던 문제