jyamethyst21 님의 블로그

백준 2750번- '수 정렬하기' (PYTHON 풀이) 본문

CODING 💻

백준 2750번- '수 정렬하기' (PYTHON 풀이)

jyamethyst21 2025. 9. 25. 00:27

문제:

오늘 문제는 정렬과 관련된 문제이다.

상기 이미지대로, 무작위 입력을 받은 후 값끼리 수를 비교하여 오름차순으로 정렬하면 된다.

 

풀이:

n = int(input())
k=[]

for i in range(n):
    a=int(input())
    k.append(a)

for j in range(n):
    for q in range(j+1,n):
        if k[j]>k[q]:
            k[j],k[q]=k[q],k[j]
for q in k:
    print(q)

코드를 만드는데는 시간이 좀 걸릴 수 있지만, 코드를 보면 어떤 걸 하려고 하는지 이해할 수 있을 것이다.

사용자로부터 반복할 횟수를 입력받고 해당 수만큼 숫자를 입력받은 뒤 k라는 리스트에 저장한다.

이후 for문 두개를 통해 0번째 인덱스에 있는 값을 기준으로 1, 2, ... n-1번째 인덱스까지 전부 비교한 뒤, 0번째 인덱스 값이 더 크다면 비교한 값과 위치를 바꿔준다. 이렇게 전체 인덱스를 반복한 뒤 바깥 for문이 끝 인덱스가 되면 안쪽 for문에서 빈 범위가 되기 때문에 에러 없이 for문이 끝나게 된다.

이후 k 리스트에 정렬된 값을 하나씩 순차적으로 출력하면 문제는 풀린다.

처음에 마지막 for문 없이 print만 했다가 틀려서 보니까 출력 형식이 한 줄씩 띄어서 나오는 것을 보고 상기와 같이 수정했다.