[백준] 1181번. 단어 정렬 (Python)

윤라이트·2023년 10월 21일

백준 코딩테스트

목록 보기
8/25

하이루!! 난 C언어가 첫 언어이기도 하고 자바는 수업을 제대로 안 들어서 기억이 잘 안나고 파이썬은 독학을 하다가 말아서 다시 공부해야 함. 그래서 C언어로만 풀었는데 찾아보니 C를 잘 사용하는 곳은 없대....ㅜ 운영체제나 임베디드 쪽에만 사용한대.

자바나 파이썬이 잘 나가는 언어라는 건 알고 있었는데
막상 이 언아들로 사용하려니 헷갈리뉴.

그래서 오늘부터는 파이썬을 공부하고 파이썬으로만 풀거임.
또는 자바로.

근데 파이썬 공부하기 전에 일단 내가 알고 있는 지식이 있기에
한 번 풀어봄.



다음은 실버 5 문제이다.

1181번. 단어 정렬

  • 입력 값 : 단어의 개수 N과 N개의 문자열. (문자열 길이<= 50)
  • 출력 값 : 조건에 따라 정렬하여 단어들을 출력.
  1. 길이가 짧은 것부터
  2. 길이가 같으면 사전 순으로 (중복된 단어는 하나만.



[정답 코드] 1181번. 단어 정렬 (Python)

apbnum = int(input()) ## 단어 개수 입력 받기
apb = [] ## 리스트

for i in range(apbnum) :
    apb.append(input()) ## 리스트에 문자열 입력 받고 추가.

setapb = set(apb) ## 집합으로 변환하여 중복값 제거.
apb = list(setapb) ## 다시 리스트로 변환.

apb.sort() ## 먼저 알파벳 순서대로 정렬.
apb.sort(key = len) ## 문자열 길이 순으로 정렬.


for i in apb : ## 조건에 맞게 정렬된 단어 출력.
    print(i)

파이썬 알고리즘

  • 단어 개수 입력 받기
  • for문으로 단어 개수만큼 반복하고 문자열 리스트에 추가하기
  • 집합으로 변환하여 중복값 제거하기
  • 다시 리스트로 변환하기
  • 알파벳 순서대로 정렬하기
  • 문자열 길이 순으로 정렬하기
  • 조건에 맞게 정렬된 문자열 출력하기

아니... 실버 5인데 이렇게 쉽다고...? 역시 파이썬이라 그런가...?
C언어로 짜도 간단할 거 같은데... 난 문자열에 강한 것인가..

근데 파이썬 문법 까먹어서 다른 코드 참고하긴 했지만
까먹지만 않았으면 구글링 안해도 풀 수 있었을 듯.

근데 애초에 set으로 입력 받고 정렬하면 안되나 싶었지만
생각해보니 set은 순서가 없고 sort는 set에 사용이 안된다네!

이상 끝 - !.

profile
끝까지 가보자9~!!!🔥✨💡

0개의 댓글