BJ 1181 단어 정렬
내가 시도한 방법
- 입력단어의 길이를 인덱스로 하는 2차원 배열(words)을 만든다.
(예를 들어, 길이가 10인 단어는 모두 words[10]에 담겨있을 수 있도록 하기 위해) - words배열을 완성한다.
- words를 순회(길이 순)하며(1차원 배열이 나옴), 중복값을 없애고 정렬한다(사전 순)
# 1.
N = int(input())
words = [[] for _ in range(52)]
# 2.
for _ in range(N):
word = input()
n = len(word)
words[n].append(word)
# 3.
for word in words:
for elem in sorted(list(set(word))):
print(elem)
다른 분 코드 참고해서 최적화 시도하기
- readline 사용하기
- set을 사용해서 처음부터 중복값 제거하고 입력받기
- 정렬할 때, key=len을 사용하여 길이 정렬시키기(길이로 정렬할 수 있는 지 몰랐음..)
- 개행이 필요할 때, join에 이스케이프 문자 활용하기
import sys
N = int(input())
words = set()
for _ in range(N):
words.add(sys.stdin.readline().rstrip())
words = sorted(sorted(list(words)), key=len)
print('\n'.join(words))
Author And Source
이 문제에 관하여(BJ 1181 단어 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@noggrie21/BJ-1181-단어-정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)