본문 바로가기
알고리즘/백준 알고리즘

[Baekjoon] 백준 알고리즘: 1181 - 단어정렬

by 며루치꽃 2021. 11. 14.

문제

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

내가 생각했던 풀이과정

 

1. 단순하게 리스트 안에 단어가 있다면, 추가를 하지 않는다.

 

2. sort() 함수를 통해 알파벳으로 정렬

 

3. sorted 람다 함수를 통해 길이별로 정렬

 

나의 풀이

N = int(input())
temp = []

for i in range(N):
    word = input()
    if word in temp:
        continue
    else:
        temp.append(word)

temp.sort()
temp = sorted(temp, key = lambda x: len(x))

for i in temp:
    print(i)

다른 사람의 풀이

words_num = int(input())
words_list = []

for _ in range(words_num):
    word = str(input())
    word_count = len(word)
    words_list.append((word, word_count))

#중복 삭제
words_list = list(set(words_list))

#단어 숫자 정렬 > 단어 알파벳 정렬
words_list.sort(key = lambda word: (word[1], word[0]))

for word in words_list:
    print(word[0])

1. 리스트를 추가할 때 튜플 형식(문자, 문자길이)으로 추가

 

2. set을 이용하여 중복 제거

 

3. lambda를 이용하여 단어, 숫자 정렬

 

새로 알게된 점, 확인해야할 점

 

댓글