위에서 아래로

Chori·2024년 10월 18일
0
post-thumbnail

이것이 취업을 위한 코딩 테스트다 with 파이썬을 공부하면서 정리한 내용입니다.


문제 내용

  • 크기에 상관없이 나열되어 있는 수열을 큰 수부터 작은 수의 순서로 정렬

입력 조건

  • 첫째 줄에 수열에 속해 있는 수의 개수 N이 주어짐 (1N500)(1 \le N \le 500)
  • 둘째 줄부터 N + 1번째 줄까지 N개의 수가 입력됨
  • 수의 범위는 1 이상 100,000 이하의 자연수

출력 조건

  • 입력으로 주어진 수열이 내림차순으로 정렬된 결과를 공백으로 구분하여 출력
  • 동일한 수의 순서는 자유롭게 출력

입력 예시

3
15
27
12

출력 예시

27 15 12

문제 해설

  • 가장 기본적인 정렬을 할 수 있는지 물어보는 문제
  • 수의 개수가 500개 이하로 매우 적으며, 모든 수는 1 이상 100,000 이하이므로 어떠한 정렬 알고리즘을 사용해도 문제를 해결할 수 있음
  • 가장 코드가 간결해지는 파이썬의 기본 정렬 라이브러리를 이용하는 것이 효과적

소스 코드

# N을 입력받기
n = int(input())

# N개의 정수를 입력받아 리스트에 저장
array = []
for i in range(n):
    array.append(int(input()))

# 파이썬 기본 정렬 라이브러리를 이용하여 정렬 수행
array = sorted(array, reverse=True)

# 정렬이 수행된 결과를 출력
for i in array:
    print(i, end=' ')

나의 풀이

  • 리스트의 sort() 메서드 이용

소스 코드

import sys

n = int(sys.stdin.readline().rstrip())
array = [int(sys.stdin.readline().rstrip()) for _ in range(n)]

array.sort(reverse=True)

for i in array:
    print(i, end=' ')
profile
전부인 것처럼, 전부가 아닌 것처럼

0개의 댓글