데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법.
왼쪽부터 정렬되므로 inner for문 시 시작 지점을 잘 정하는 것이 그나마 효율성 측면에서 좋음.
코팅테스트에서는 거의 사용하지 않는 알고리즘이다.
문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
입력 예시
2143
출력 예시
4321
코드 예시
import sys input=sys.stdin.readline A=list(input()) for i in range(len(A)): for j in range(i+1,len(A)): if(A[i]<A[j]): temp=A[j] A[j]=A[i] A[i]=temp for i in range(len(A)): print(A[i],end='')
selection sort로 간단하게 풀어보았다.
여기서 특이점은
list(input()) 즉, list 함수를 사용해서 input() 에 대해 각 원소들을 list로 저장한다. data type이 int 가 아닌 str 형태로 sorting 을 진행했다.
사실 ascii code 역시 특정 값을 가지고 있기 때문에 sorting에 전혀 문제가 되지 않는다.