백준 1181번 : 단어 정렬

2024. 1. 24. 19:34개인활동/코테

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

오늘의 문제는 단어 정렬 문제이다.

 

이 문제의 포인트는

1. 중복 제거

2. 똑같은 길이의 단어는 알파벳 순으로 정렬

 

이부분에서 중복 제거의 경우 set으로 입력받으면 제거가 가능하다

정렬 또한 길이로 혹은 알파벳 순으로는 가능하나 이 둘을 어떻게섞어야 할지가 고민됐다

 

뭔가 lambda를 쓰면 해결할 수 있을 것 같은데 감이 오지 않았다.

 

그래서 구글링을 좀 해보며 얻은 결론은

n = int(input())
words = sorted(set(input() for _ in range(n)))
words = sorted(words, key=lambda x : len(x))

for i in words:
    print(i)

이것이였다.

 

일단은 알파벳 순으로 정렬 후 lambda 함수를 이용해 길이 순으로 정렬할 수 있도록 한다.

 

아직도 람다 함수는 잘 모르겠다

봐도 이해가 안감....

 

파이썬 다시 공부해야 할 것 같다

 

어디서부터 어떻게 시작해야되련지

글러먹은 것 같기도

 

 

'개인활동 > 코테' 카테고리의 다른 글

백준 10814번 : 나이순 정렬  (1) 2024.02.01
백준 11650번 : 좌표 정렬하기  (1) 2024.01.26
백준 1427번 : 소트인사이드  (0) 2024.01.21
백준 2587번 : 대푯값  (0) 2024.01.12
백준 2750 : 오름차순 정렬  (0) 2024.01.12