728x90
반응형
https://www.acmicpc.net/problem/2204
문제를 풀면서 몰랐던 개념
[Python] 대소문자 구분 없이 정렬
-> 영문 문자열 리스트를 정렬할 때에는 기본적으로 대소문자를 구분하여 소팅하는데 sort함수에 key=str.lower라는 파라미터를 넣으면, 대소문자 구분없이 자연스럽게 정렬할 수 있음!
arr = ['bbb', 'AAA', 'DDD', 'CCC', 'aaa']
# 대소문자 구분하여 정렬
arr.sort()
print(arr)
>>> ['AAA', 'CCC', 'DDD', 'aaa', 'bbb'] # 출력 결과
# 대소문자 구분 없이 정렬
arr.sort(key=str.lower)
print(arr)
>>> ['AAA', 'aaa', 'bbb', 'CCC', 'DDD'] # 출력 결과
문제의 접근 방법
입력 받은 영어 단어들을 대소문자 구분 없이 출력하기
문제 풀이 방법
각 테스트 케이스의 개수를 입력받고 그 수에 맞게 영어 단어들을 입력받기 위해서 while문 안에서 구현 -> 테스트 케이스 n번 입력 받기 -> 만약 n이 0이라면 while문 종료 -> n번만큼 반복문을 돌려 단어를 입력받아 미리 선언해 둔 빈 리스트 arr에 추가하기 -> 리스트 arr를 대소문자 구분없이 정렬 -> 사전상 가장 앞서는 단어는 정렬된 리스트 arr의 0번째 인덱스이기 때문에 arr[0] 출력!
소스코드
while True:
n = int(input())
if n == 0:
break
arr = []
for _ in range(n):
word = input()
arr.append(word)
arr.sort(key=str.lower)
print(arr[0])
728x90
반응형
'백준 write-up > 정렬 & 그리디' 카테고리의 다른 글
[백준] 애너그램 : 6996번 - Python (0) | 2022.06.24 |
---|---|
[백준] 종이자르기 : 2628번 - Python (0) | 2022.06.18 |
[백준] 세수정렬 : 2752번 - Python (0) | 2022.06.17 |
[백준] 최후의 승자는 누구? : 12760번 - Python (0) | 2022.06.15 |
[백준] 잃어버린 괄호 : 1541번 - Python (0) | 2022.06.14 |