선택 정렬
데이터에서 최대나 초소 데이터를 데이터가 나열된 순으로 찾아 가며 선택하는 방법
구현이 복잡/ 시간 복잡도도 비효율적이므로 많이 쓰지 않음
최솟값(혹은 최댓값)을 찾고 남은 정렬 부분의 맨 앞 값과 바꾸기
1427번 실버 5
1427번: 소트인사이드
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
슈도코드
A(자릿수별로 구분해 저장한 리스트)
A 리스트 저장
for i를 A 리스트만큼 반복:
for i를 i+1~ A 리스트 길이만큼 반복:
현재 범위에서 Max값 찾기
현재 i의 값과 Max값 중 Max값이 더 크면 swap 수행
A 리스트 출력
from sys import stdin
Nlist = list(stdin.readline())
for i in range (len (Nlist)):
Max = i
for j in range (i+1, len(Nlist)):
if Nlist[j] > Nlist[Max] : # 내림차순 해야 하므로 최댓값을 찾음
Max = j
if Nlist[i] < Nlist[Max]:
temp = Nlist[i]
Nlist[i] = Nlist[Max]
Nlist[Max] = temp
for i in range (len (Nlist)) :
print(Nlist[i], end='')
+
출력 한 줄로 하는 방법엔 (.join) 쓰기와 (end = " ") 쓰기가 있다.
+
str형 숫자도 대소비교 가능 (ex) "3" <"5")
len은 숫자형 안 되고 문자형만 됨
'📊 Algorithm > Algorithm 주제별 정리' 카테고리의 다른 글
🧚♂️알고리즘🧚♂️ - 정렬 - 퀵 정렬 / 병합 정렬 (0) | 2023.01.16 |
---|---|
🧚♂️알고리즘🧚♂️ - 정렬 - 삽입 정렬 (0) | 2023.01.16 |
🧚♂️알고리즘🧚♂️ - 정렬 - 버블정렬 (0) | 2022.12.27 |
🧚♂️알고리즘🧚♂️ - 자료구조 - 투 포인터 / 슬라이딩 윈도우 (0) | 2022.12.25 |
🧚♂️알고리즘🧚♂️ - 자료구조 - 스택.큐.덱 (0) | 2022.11.16 |