Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 오픈챌린지
- 국비지원교육
- 부트캠프
- 오블완
- 디자인강의
- 디자인교육
- UXUI기초정복
- UXUI챌린지
- 오픈패스
- 디자인챌린지
- 패스트캠퍼스
- Be
- 내일배움카드
- UXUIPrimary
- Java
- 객체지향
- OPENPATH
- 티스토리챌린지
- 내일배움캠프
- baekjoon
- 환급챌린지
- KDT
- Spring
- 백준
- 국비지원취업
- 백엔드
- 백엔드 부트캠프
- mysql
- 백엔드개발자
- 국비지원
Archives
- Today
- Total
군만두의 IT 공부 일지
[백준] 1181번: 단어 정렬 (파이썬) 본문
✅문제: 1181번
📌문제풀이
주어진 단어들을 정렬하여 출력하는 문제임. 단어를 길이순으로 먼저 정렬하고, 길이가 같으면 사전순으로 정렬하며, 중복된 단어는 한 번만 출력해야 함.
- 입력 데이터를 리스트로 저장
- 입력으로 주어진 단어들을 리스트로 읽어옴.
- 동일한 단어가 여러 번 입력될 수 있으므로 중복을 제거해야 함.
- 중복 제거
- set()을 사용하여 중복된 단어를 제거한 뒤, 리스트로 변환함.
- 이를 통해 각 단어를 한 번씩만 처리할 수 있음.
- 정렬 기준 적용
- sort() 함수의 key를 사용하여 두 가지 정렬 기준을 설정함.
- 단어의 길이순 정렬
- 길이가 같은 경우 사전순 정렬
- sort() 함수의 key를 사용하여 두 가지 정렬 기준을 설정함.
import sys
input = sys.stdin.read
def solution(words):
unique_words = list(set(words))
unique_words.sort(key=lambda word: (len(word), word))
return unique_words
data = input().split()
words = data[1:]
for word in solution(words):
print(word)
위 코드의 예제 입출력 과정은 아래와 같음.
# 예제 입력 1
13
but
i
wont
hesitate
no
more
no
more
it
cannot
wait
im
yours
- 입력 처리 및 중복 제거
- 입력 리스트: ['but', 'i', 'wont', 'hesitate', 'no', 'more', 'no', 'more', 'it', 'cannot', 'wait', 'im', 'yours']
- 중복 제거 후: ['but', 'i', 'wont', 'hesitate', 'no', 'more', 'it', 'cannot', 'wait', 'im', 'yours']
- 정렬
- 길이순 정렬: ['i', 'no', 'it', 'im', 'but', 'wont', 'more', 'wait', 'yours', 'cannot', 'hesitate']
- 길이가 같은 경우 사전순 정렬
# 예제 출력 1
i
im
it
no
but
more
wait
wont
yours
cannot
hesitate
📌후기
- 정렬과 중복 제거의 기본 개념을 활용하는 쉬운 문제였음.
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1260번: DFS와 BFS (0) | 2024.11.20 |
---|---|
[백준] 2293번: 동전 1 (파이썬) (2) | 2024.11.19 |
[백준] 1263번: 시간 관리 (파이썬) (0) | 2024.11.17 |
[백준] 1269번: 대칭 차집합 (파이썬) (0) | 2024.11.15 |
[백준] 14888번: 연산자 끼워넣기 (파이썬) (1) | 2024.11.14 |
Comments