gksqnfl1241   2년 전

고수님들 혹시 틀린부분이나 반례를 알려주시면 감사하겠습니다...!

b = list(map(int, input()))
a = list(set(b))
a = a[::-1]
for i in range(len(a)):
    if b.count(a[i]) >= 2:
        for _ in range(b.count(a[i])-1):
            print(a[i], end="")
    print(a[i], end="")

jiminp   2년 전

원칙적으로 set은 정렬 순서를 보장하지 않습니다. 따라서 a가 오름차순/내림차순으로 정렬되어있으리라는 보장이 없습니다.
(다만 제가 cpython 3.8.2로 테스트 했을 때에는 항상 정렬된 순서로 반환하긴 합니다)

여담인데 코드가 좀 많이 복잡하네요... 아래 for 문 안을 간략화 해 봤습니다만 사실 set을 쓰지 말고 sorted(b)를 쓰면 훨씬 더 간단히 만들 수 있습니다.

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