baekjoon 1181

윤동환·2023년 1월 26일
0

Algorithm

목록 보기
41/54
post-thumbnail

단어 정렬

성공 코드

N = int(input())
d = {}
for n in range(N):
    i = input()
    d[i] = len(i)
sort = sorted(d.items(), key=lambda num : (num[1], num[0]))
for i in sort:
    print(i[0])

문제 주의사항

정렬 우선 순위를 고려해야한다.
1. 길이가 짧은 것 부터
2. 길이가 같으면 사전 순
3. 동일한 단어는 한번만 출력

dictionary를 선택한 이유

  • 중복을 허용하지 않기에 3번을 해결 할 수 있다.
  • 주어진 단어를 key로 두고 길이를 value로 두어 하나의 자료구조로 한번에 정렬이 가능하다

코드 구현중 생각 및 알게된 것

처음에 객체 타입을 정해 key, value로 넣으려 하였으나 중복 부분을 따로 처리해야하는 부분이 신경쓰였다. 해서 dict로 수정하기로 하였다.

dict내에 sort()가 없어 sorted함수를 사용하였는데, 리턴 값이 페어 형태의 튜플 pair형었다.

Sort git:(master) ✗ python 1181.py
2
ac
ab
[('ab', 2), ('ac', 2)]

튜플은 중복을 허용하는 자료구조를 갖고있어 유연하게 값을 담을 수 있기 때문에 리턴값으로 이렇게 주는건가 싶다.

결과

profile
모르면 공부하고 알게되면 공유하는 개발자

0개의 댓글