[문제]
https://www.acmicpc.net/problem/1181
[풀이]
정렬할 때 조건에 글자 길이도 필요하기 때문에 입력 단어를 넣을 때 len을 이용해 글자 길이도 리스트 voca_li에 함께 넣어주었다. 또, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력해야 하기 때문에 set을 이용해 중복 단어를 삭제했다.
주 핵심은 이중 리스트 정렬 문제였는데
voca_li = [(2, 'it'), (4, 'wait'), (1, 'i') ······]
의 리스트일 때 voca_li[][0]인 숫자를 기준으로 정렬할 때는
voca_li.sort(key=lambda x: x[0])
voca_li[][1]인 문자열을 기준으로 정렬할 때는
voca_li.sort(key=lambda x: x[1])
첫 번째 인자 기준 오름차순 정렬 후 값이 일치할 때 두 번째 인자를 기준으로 오름차순으로 정렬할 경우
voca_li.sort(key=lambda x: (x[0], x[1]))
[코드]
if __name__ == '__main__':
voca_li = []
for _ in range(int(input())):
voca = input()
num = len(voca)
voca_li.append((num, voca))
voca_li = list(set(voca_li))
voca_li.sort(key=lambda x: (x[0], x[1]))
for voca in voca_li:
print(voca[1])
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 1292번 쉽게 푸는 문제 (0) | 2021.06.30 |
---|---|
[Python] BOJ/백준 1312번 소수 (0) | 2021.06.29 |
[Python] BOJ/백준 1205번 등수 구하기 (0) | 2021.06.29 |
[Python] BOJ/백준 1251번 단어 나누기 (0) | 2021.06.28 |
[Python] BOJ/백준 2204번 도비의 난독증 테스트 (0) | 2021.06.25 |