문제
https://www.acmicpc.net/problem/2750

소스 코드
n=int(input())
arr=[]
s=0
for i in range(n):
a=int(input())
arr.append(a)
for i in range(n):
min_index=i
for j in range(i+1, n):
if arr[min_index] > arr[j]:
min_index=j
arr[i], arr[min_index] = arr[min_index], arr[i]
for i in arr:
print(i)
정리
정렬 알고리즘 중 선택 정렬 알고리즘을 사용했다.
이후 풀고나서 선택 정렬 알고리즘은 시간 복잡도가 제일 비효율적이며 가장 작은 데이터 값을 찾을때 사용한다는 것을 알게되었다.
이후 2751번 문제를 풀때는 해당 방법으로 풀었을때 시간초과 오류가 떴다.
정렬 알고리즘은 다양하게 있는데 공부하자!!!!
-참고 사이트-
정렬 알고리즘의 종류
1번째부터 끝까지 훑어서 가장 작은 게 1번째, 2번째부터 끝까지 훑어서 가장 작은 게 2번째... 정렬이 끝날 때까지 반복한다. 이미 정렬되어 있는 자료구조에 삽입/제거 할 때나 배열이 작은 경우
velog.io
[Python : 코딩 테스트 알고리즘] 정렬 알고리즘
📒 정렬 알고리즘 > 정렬 : 데이터를 특정한 기준에 따라 순서대로 나열 하는 것 이진 탐색의 전처리 과정 정렬 예제는 모두 오름차순 내림차순 정렬 : 알고리즘에서 크기비교를 반대로 수행 선
velog.io
1. 정렬 알고리즘에 대해 많은 연습 필요
2. 선택 알고리즘은 제일 비효율적
'Python > Baekjoon' 카테고리의 다른 글
| [백준] 2588번 : 곱셈 (Python) (0) | 2024.11.24 |
|---|---|
| [백준] 10869번 : 사칙연산 (Python) (0) | 2024.11.24 |
| [백준] 2751번 : 수 정렬하기 2 (Python) (0) | 2024.07.16 |
| [백준] 2557번 : Hello World (Python) (0) | 2024.07.01 |