junyub2   2년 전

n = int(input())
lst = [0 for x in range(n)]

for i in range(n):
    lst[i] = input()

lst = list(set(lst))

for i in range(len(lst)):
    for j in range(len(lst)-1):
        if len(lst[i]) < len(lst[j]):
            lst[i], lst[j] = lst[j], lst[i]

for i in range(len(lst)):
    for j in range(i, len(lst)):
        if len(lst[i]) == len(lst[j]):
            lst[i], lst[j] = min(lst[i], lst[j]), max(lst[i], lst[j])

for i in lst:
    print(i)

20210805   2년 전

올리신 코드로 예제를 실행해 보았는데 오답이 나오네요. 이게 제출하신 코드인가요?

junyub2   2년 전

앗...잘못올렸어요...잠시....

junyub2   2년 전

수정했씁니다

junyub2   2년 전

input() 대신 sys.stdin.readline()을 써도 마찬가지로 시간초과가 나와요

20210805   2년 전

지금 구현하신 코드는 bubble sort로 시간복잡도가 O(n2)입니다. 이 문제에는 O(n log n)시간 정렬 알고리즘을 사용해야합니다.

junyub2   2년 전

음...한번 공부해보고 다시 시도해보겠습니다

감사합니다 !!

댓글을 작성하려면 로그인해야 합니다.