문제
하나의 수열에는 다양한 수가 존재하며, 이런 큰 수는 크기와 상관 없이 무작위로 주어진다. 이 수를 큰수 부터 작은 수까지 내림차순으로 정렬하면되는 문제다. 즉 수열을 내림차순으로 정렬하는 프로그램을 만들면된다.
입력
- 첫째 줄에 수열에 속해 있는 수의 개수 N이 주어진다. 이때 범위는 1 <= N <= 500
- 둘째 줄부터 N + 1 번째 줄 까지 N개의 수가 입력된다. 수의 범위는 1 이상 100,000 이하 자연수
출력
- 입력으로 주어진 수열이 내림차순으로 정렬된 결과를 공백으로 구분해서 출력하면된다. 동일한 수는 순서상관없다.
접근 & 풀이 (의식의 흐름)
1. 수열을 입력받고
2. 수의 범위가 1 ~ 100,000이니 선택정렬보단 삽입정렬로 내림차순으로 정렬하면 되겠군
소스 코드
n = int(input()) # 3
array = []
for _ in range(n):
array.append(int(input())) # [15, 27, 12]
# 선택 정렬
for i in range(len(array)):
for j in range(i, 0, -1):
if array[j] > array[j - 1]:
array[j], array[j - 1] = array[j - 1], array[j]
else:
break
for i in range(len(array)):
print(array[i], end = ' ') # 27, 15, 12
오답노트 & 알아낸 것
- 코드를 짜고 책에 있는 소스코드를 봤는데 그냥 기본 정렬 라이브러리를 이용해서 구현했더라... 그래도 공부했던 거를 복습하는 기분이라 좋았다
'파이썬 > 이것이 코딩 테스트다 with 파이썬' 카테고리의 다른 글
이코테 Chapter 05 정렬 - 두 배열의 원소 교체 (0) | 2022.02.02 |
---|---|
이코테 Chapter 05 정렬 - 성적이 낮은 순서로 학생 출력하기 (0) | 2022.02.02 |
이코테 Chapter 04 구현 - 왕실의 나이트 (1) | 2022.01.26 |
이코테 Chapter 04 구현 - 시각 (0) | 2022.01.26 |
이코테 Chapter 04 구현 - 상하좌우 (0) | 2022.01.26 |