안녕하세요. 성조입니다.
이 문제들은 모두 Python 3 버전을 기준으로 풀이됐습니다.
문제를 평소에 묶어서 처리하지 않지만, 문제가 연관성이 높고 +연산과 -연산처럼 비슷한 로직에서 돌아가는 것 같아서 묶어서 포스팅했습니다.
문제 출처
https://www.acmicpc.net/problem/11931
https://www.acmicpc.net/problem/15688
문제
수 정렬하기 4
N개의 수가 주어졌을 때, 이를 내림차순으로 정렬하는 프로그램을 작성하시오.
수 정렬하기 5
N개의 수가 주어졌을 때, 이를 비내림차순으로 정렬하는 프로그램을 작성하시오.
길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다.
입력
수 정렬하기 4
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
수 정렬하기 5
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다.
출력
수 정렬하기 4
첫째 줄부터 N개의 줄에 내림차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
수 정렬하기 5
첫째 줄부터 N개의 줄에 비내림차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
코드
수 정렬하기 4
import sys
T = int(sys.stdin.readline())
result = [0] * T
for i in range(T):
result[i] = int(sys.stdin.readline())
result.sort(reverse=True)
print(*result, sep='\n')
수 정렬하기 5
import sys
T = int(sys.stdin.readline())
result = [0] * T
for i in range(T):
result[i] = int(sys.stdin.readline())
result.sort()
print(*result, sep='\n')
풀이
수 정렬하기 4
1. 처음에 입력받을 반복 횟수를 구현한다.
2. 입력받을 배열의 공간을 초기화한다. (result = [0] * T)
3. 값을 입력받는다.
4. 파이썬에서 지원하는 sort 함수를 활용한다. 여기서 중요한 것은 sort() 함수를 공백으로 처리하면 오름차순으로 정렬하며, reverse 를 입력하고 True로 지정하면 내림차순 정렬로 처리한다는 것이다.
수 정렬하기 4번의 경우 내림차순을 요구하고 있기 때문에 sort 함수에 reverse=True를 지정하면 값을 출력받을 수 있으며, print() 함수에서 *로 리스트이 값을 모두 출력한다. 또한 리스트 내부의 값이 하나 변동할 때마다 sep='\n'를 통하여 줄바꿈을 처리한다.
수 정렬하기 5
1~3번의 경우 위 수 정렬하기 4번과 동일하다
4. 수 정렬하기 5번의 경우 오름차순 값으로 받기 때문에 sort() 함수 기본으로 활용하여 값을 정렬한다. 이후 정렬 받은 값들을 print()로 [* ,sep='\n']이 조건을 동일하게 처리하고, 출력하면 문제에서 요구하는 기본적인 사항은 해결 할 수 있다.
오타나 이해가 안가는 부분이 있다면 언제든지 댓글로 얘기해 주시면 감사드리겠습니다.
다음 포스팅 때 뵙겠습니다.
'백준 - Python' 카테고리의 다른 글
[백준 - 1302 ][Python] 베스트셀러 (0) | 2023.02.15 |
---|---|
[백준 - 1676][Python] 팩토리얼 0의 개수 (0) | 2023.02.11 |
[백준 - 1002 ][Python] 터렛 (0) | 2023.02.09 |
[백준 - 1026][Python] 보물 (0) | 2023.02.08 |
[백준 - 11170][Python] 0의 개수 (0) | 2023.02.07 |