백준 1427 파이썬 선택 정렬 사용

2024. 2. 18. 08:28코딩/백준

반응형

백준 1427 - 소트인사이드

문제

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

1427번

답안 코드 :

import sys

print = sys.stdout.write

A = list(input())

for i in range(len(A)):
    Max = i

    for j in range(i + 1, len(A)):
        if A[j] > A[Max]:  # 내림차순이므로 최댓값을 찾음
            Max = j

    if A[i] < A[Max]:
        temp = A[i]
        A[i] = A[Max]
        A[Max] = temp

for i in range(len(A)):
    print(A[i])

 

생각 :

# 문제 분석
# 자연수를 받아 자릿수별로 정렬해야함.
# 먼저 숫자를 각 자릿수별로 나누는 작업 필요
# -> 파이썬에서는 input 데이터를 list로 변환하면 자동으로 자릿수 나누어 리스트화 해준다.
# ( 파이썬 짱 )

# 이번에도 그저 sort()함수를 이용하면 되지만, N의 길이가 크지 않으니까 선택 정렬을 사용해서 내림차순 정렬해봐야지.

# 정렬 알고리즘 링크 첨부

https://mkisos.tistory.com/entry/%EC%A0%95%EB%A0%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B2%84%EB%B8%94-%EC%A0%95%EB%A0%AC-%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC-%EC%82%BD%EC%9E%85-%EC%A0%95%EB%A0%AC-%ED%80%B5-%EC%A0%95%EB%A0%AC-%EB%B3%91%ED%95%A9-%EC%A0%95%EB%A0%AC-%EA%B8%B0%EC%88%98-%EC%A0%95%EB%A0%AC

# 문제 풀이
# 1. list 변환 사용해서 데이터를 리스트에 저장
# 2. 데이터들을 선택 정렬 알고리즘 이용해서 내림차순 정렬
# 내림차순 정렬이니까 최댓값 찾아서 기준이 되는 자리와 swap

 

반응형