728x90
해설 부분은 책에 내용을 포함하고, 더 추가하여 최대한 자세하게 설명하려고 노력했습니다.
문제 설명
하나의 수열에는 다양한 수가 존재한다. 이러한 수는 크기에 상관없이 나열되어 있다. 이 수를 큰 수부터 적은 수의 순서로 정렬해야 한다. 수열을 내림차순으로 정렬하는 프로그램을 만드시오.
입력 조건
- 첫째 줄에 수열에 속해 있는 수의 개수 N이 주어진다. (1 <= N <= 500)
- 둘째 줄부터 N + 1번째 줄까지 N개의 수가 입력된다. 수의 범위는 1 이상 100,000 이하의 자연수이다.
출력 조건
- 입력으로 주어진 수열이 내림차순으로 정렬된 결과를 공백으로 구분하여 출력한다. 동리한 수의 순서는 자유롭게 출력해도 괜찮다.
입력 예시
3
15
27
12
출력 예시
27 15 12
문제 해설
주어진 입력값을 알맞게 정렬해서 출력할 수 있는지를 묻는 문제이다. 입력되는 값이 공백을 두고 입력이 되는지 줄마다 바뀌어서 입력되는지를 파악하고 출력될 때는 오름차순인지 내림차순인지를 고려해서 출력하면 된다.
어렵지 않다. 충분히 할 수 있다. 하지만, 파이썬 기본 정렬 라이브러리를 연습해 보기 위한 문제라고 생각한다.
책에 있는 해설 코드는 다음과 같다.
n = int(input())
data = []
for i in range(n):
data.append(int(input()))
data.sort(reverse = True) # 역순으로 정렬
for i in data:
print(i, end=' ') # 공백을 사이에 두고 출력하는 방법
data.append(int(input())) 부분은 줄마다 새롭게 입력값을 받기 때문에 .split() 메서드가 뒤에 붙지 않았다.
.sort() 메서드에서 reverse= True를 설정해 내림차순으로 정렬을 해준다.
출력 값 옆에 end=' '로 공백을 사이에 두고 나란히 출력되게 지정하면 작성이 끝난다.
728x90
'[Coding Test] > [이코테]' 카테고리의 다른 글
두 배열의 원소 교체(p.182) - 정렬(이코테) (0) | 2022.03.26 |
---|---|
성적이 낮은 순서로 학생 출력하기(p.180) - 정렬(이코테) (0) | 2022.03.26 |
문자열 재정렬(p.322) - 구현(이코테) (0) | 2022.03.20 |
카드 정렬하기(p.363) - 정렬 문제(이코테) (0) | 2022.03.16 |
실패율(p.361) - 정렬 문제(이코테) (0) | 2022.03.16 |