리스트 정렬 질문입니다.

조회수 1986회
temp=0
a=[0,0,0,0]
a[0]=str(input("1번째 숫자 : "))
a[1]=str(input("2번째 숫자 : "))
a[2]=str(input("3번째 숫자 : "))
a[3]=str(input("4번째 숫자 : "))


for i in range(0,3):
    max=i
    for j in range(0,3):
        if a[j]<a[max]:
            max=j
    temp=a[i]
    a[i]=a[max]
    a[max]=temp

for i in range(0,4):
    print(a[i], end="")

숫자를 입력받은 후, 큰값부터 앞에나오게 출력하고싶었는데 원치 않는 숫자들이 찍히네요ㅠㅠ c언어에서 정렬부분에 있는부분을 똑같이 따라해서 파이썬에 적용해보았는데 막혀버렸습니다... 아시는분 있으면 도움주셨으면 합니다!

1 답변

  • python에서는 sort라는 함수를 사용하시면 됩니다.

    a=[3,2,1]
    a.sort()
    print(a)
    

    추가로... python을 c처럼 쓰고 계신 부분이 있어서 설명 드리면 python에서는 list의 길이를 미리 안정해도 됩니다. 그래서 입력을 받을 때,

    a=[] # 크기를 미리 정하지 않고 list로만 선언
    for i in range(0,4)
        a.append(str(input("{}번째 숫자 : ".format(i+1))))
    

    이렇게 입력 받으면 좋겠어요.

    또 출력도 이렇게 하시면 더 좋겠네요.

    a=[1,2,3,4]
    for n in a:
        print(n, end=" ")
    
    • 정말 감사합니다! sort 라는 함수 사용할 수 있다는걸 생각조차 하지못했네요ㅠ 감사합니다! 알 수 없는 사용자 2017.4.11 10:20

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)