https://www.acmicpc.net/problem/1181
1. 내가 작성한 코드
import sys
n = int(sys.stdin.readline())
arr = []
for i in range(n):
arr.append(sys.stdin.readline().strip())
b = sorted(set(arr), key = lambda x: (len(x),x))
for i in b:
print(i)
len(x)를 기준으로 한 번 정렬해주고, 길이가 같은 것은 사전순으로 정렬해주면 된다.
처음에 문제를 제대로 안읽어서,, 같은 것들도 중복해서 출력했는데 set 함수를 이용해 제거해주면 된다.
sys.stdin.readline를 사용했을 때 계속 '출력 형식이 오류입니다'라고 떠서 왜일까 검색해봤는데
sys.stdin.readline는 입력에 개행 문자가 포함되기 때문에 strip()을 해줘야 한다고 한다.
(input()은 값의 개행 문자를 삭제시켜서 리턴한다)
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 11651번 좌표 정렬하기 2(with python) (0) | 2023.02.02 |
---|---|
[백준] 10815번 숫자 카드(with python) (0) | 2023.02.01 |
[백준] 11650번 좌표 정렬하기(with python) (0) | 2023.01.31 |
[백준] 1026번 보물(with python) (0) | 2023.01.31 |
[백준] 10828번 스택(with python) (0) | 2023.01.29 |
댓글