예꾸
개발자국
예꾸
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • CS (6)
      • 데이터베이스 (5)
      • 운영체제 (0)
      • Computer Architecture (1)
    • 끄적끄적 (4)
    • 이론 (29)
      • 알고리즘 (18)
      • 자료구조 (4)
      • WEB (2)
      • JS (2)
      • Git (2)
      • Python (1)
    • 면접준비 (3)
      • Vue (1)
      • Design Pattern (1)
      • Frontend (1)
    • 개발기술 (20)
      • Git PUSH 자동화 (3)
      • VUE (1)
      • Linux (2)
      • MERN Stack (2)
      • React기반 Gatsby로 블로그 개발하기 (6)
      • Typescript (0)
      • 감정일기장(React) (3)
      • CI CD (3)
    • 코드트리 (6)
      • 블로그 챌린지 (3)
      • 모의시험 (3)
    • 취업준비 (3)
      • 코딩테스트 후기 (3)
    • 프로그래머스 (8)
      • SQL (7)
      • 알고리즘 (1)
    • 백준 (31)
      • 그리디(탐욕법) (6)
      • 구현 (5)
      • 그래프탐색(dfs, bfs) (5)
      • 완전탐색 (5)
      • 문자열 (5)
      • 누적합 (2)
      • DP(다이나믹 프로그래밍) (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준 완전탐색
  • javascript
  • 코딩테스트실력진단
  • 프로그래머스
  • 백준 그리디
  • 백준 문자열
  • 나만의공부노트
  • 백준 그래프탐색
  • 컴퓨터 시스템의 구조
  • 프로그래머스 SQL
  • 운영체제
  • 자료구조
  • 알고리즘
  • gatsby
  • React
  • 백준 구현
  • JS
  • 코드트리 추천
  • 코딩테스트
  • 코드트리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
예꾸

개발자국

[백준 1181] 단어 정렬 - python
백준/문자열

[백준 1181] 단어 정렬 - python

2021. 6. 12. 16:46

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

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

 

문제 풀이

  • 길이순과 사전순을 이용한 정렬을 해야했다
  • 둘을 이용하려면 lambda를 사용한 sort함수를 이용하면 된다 (이 문제에서 핵심)
  • 처음에 중복을 제거하여 받기 위해 set을 이용해 word를 입력받았다
  • words에는 (word길이, word)를 담아주었다 둘을 이용해 정렬을 해야하기 때문에
  • 후에 list로 바꿔준 뒤 lambda를 이용해 길이와 사전 순으로 정렬했다
  • lambda를 이용해 길이순으로 정렬만 원한다면 (key=lambda : len) 으로만 짜도 된다 처음에 이렇게 짰다가 틀림 ㅠ
n = int(input())
words = set()
for _ in range(n):
    word = input()
    words.add((len(word), word))
    
words = list(words)
# 길이가 짧은 것부터
# 길이가 같으면 사전순으로
words.sort(key = lambda x : (x[0], x[1])) # 알아두기

for w in words:
    print(w[1])

 

    '백준/문자열' 카테고리의 다른 글
    • [백준 1316] 그룹 단어 체커 - python
    • [백준 20154] 이 구역의 승자는 누구야?! - python
    • [백준 10798] 세로읽기 - python
    • [백준 9046] 복호화 - python
    예꾸
    예꾸
    비전공자 옒의 개발이야기💻

    티스토리툴바