백준 1181 파이썬 .strip()와 lambda

2024. 4. 11. 08:18코딩 도구/백준 (단계별)

반응형

백준 1181 - 단어 정렬

문제

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

 

1181번: 단어 정렬

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

www.acmicpc.net

 

1181번

답안 코드 :

N = int(input())

words = []

for _ in range(N):
    word = input().strip()
    words.append(word)

# 중복 제거 후 길이가 짧은 순서대로, 길이가 같으면 사전 순으로 정렬
sorted_words = sorted(set(words), key=lambda x: (len(x), x))

for word in sorted_words:
    print(word)

 

 

백준 / 문제 / 단계별로 풀어보기 / 13단계 정렬

생각 :

# .strip(): 문자열의 양쪽 끝에 있는 공백을 제거
# sorted(set(words), key=lambda x: (len(x), x)): 정렬 함수인 sorted를 사용하여 중복이 제거된 단어들을 정렬합니다. 정렬할 때 사용되는 키(key) 함수는 lambda x: (len(x), x)로 정의되어 있습니다. 이 키 함수의 역할은 다음과 같습니다:

# len(x): 단어의 길이를 기준으로 정렬합니다. 길이가 짧은 순서대로 정렬됩니다.
# x: 길이가 같은 경우에는 단어 자체를 기준으로 정렬합니다. 이는 사전 순으로 정렬됩니다.

반응형

'코딩 도구 > 백준 (단계별)' 카테고리의 다른 글

백준 18870 파이썬 딕셔너리  (14) 2024.04.13
백준 10814 파이썬 런타임에러 해결  (16) 2024.04.12
백준 11651 파이썬  (13) 2024.04.10
백준 11650 파이썬 lambda  (4) 2024.04.09
백준 1427 파이썬 예시  (12) 2024.04.08