일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- html
- stencil buffer
- react native
- Expo
- react native typescript navigate
- react
- react native typescript navigation
- 싸이월드
- react native typescript
- node
- 벡터와 리스트의 차이
- GitHub
- javascript
- react-native
- 리액트 네이티브 맥
- c++ 정보은닉
- 리액트 네이티브 설치 오류
- C++
- react native 타입스크립트
- 스탠실 버퍼 시작
- react native ios 기기 연결
- c++ using
- 스탠실 버퍼 사용
- node.js
- react native accessible
- CSS
- cyworld
- unity stencil buffer
- 스탠실 버퍼 튜토리얼
- react native mac
Archives
- Today
- Total
혀니의 이거저거 뿌시기
1181 단어 정렬 본문
728x90
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
N = int(input())
lst = set()
lst2 = []
lst3 = []
max = 0
for i in range(N):
lst.add(input())
for i in lst:
lst2.append(i)
lst2.sort()
for i in range(20001):
for j in lst2:
if len(j) == i:
lst3.append(j)
if len(lst3) == len(lst):
break
print(*lst3, sep='\n')
진짜 오랜만에 하나도 안 보고 맞은 문제..
문자들을 문자 길이대로 정렬 후 같은 길이면 알파벳 순으로 정렬하는 문제였는데
우선 sort로 알파벳순으로 정렬하고 그 다음에 가장 문자길이가 큰것을 기준으로해서 그때그때 해당 문자길이가 있는 만큼 for문을 돌려서 출력해야했다..
그런데 보니까 input에 중복이 포함되어있어서 이것을 삭제해야했고.. 이를 위해 set로 선언이 필요했었다..
set는 또 len같은 것을 못쓰고 add로 요소 추가를 해야함
또한, 한번에 배열을 출력하는 방법도 깨달았다. print(*lst3, sep='\n')이런식.
그런데 더 간단한 방법이 있다고 한다.....
import sys
n=int(sys.stdin.readline())
lis=[]
for _ in range(n):
words=input()
lis.append(words)
lis=list(set(lis))
lis.sort()
lis.sort(key=len)
for i in lis:
print(i)
그냥 lst.sort(key=len)하면 되는거였음 ㅋ
파이썬엔 별게 다있네..
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
1018 체스판 다시 칠하기 (0) | 2022.08.22 |
---|---|
2477 참외밭 (0) | 2022.08.18 |
11650 좌표 정렬하기 (0) | 2022.08.16 |
10845 큐 (0) | 2022.08.16 |
1929 소수 구하기 (0) | 2022.08.16 |