하나의 수열에는 다양한 수가 존재한다. 이러한 수는 크기에 상관없이 나열되어 있다. 이 수를 큰 수부터 작은 수의 순서로 정렬해야 한다. 수열을 내림차순으로 정렬하는 프로그램을 만드시오.
입력
- 첫째 줄에 수열에 속해 있는 수의 개수 N이 주어진다.
- 둘째 줄 부터 N+1번째 줄까지 N개의 수가 입력된다.
출력- 입력으로 주어진 수열이 내림차순으로 정렬된 결과
import sys
input = sys.stdin.readline
N = int(input())
array = [int(input()) for _ in range(N)]
array.sort(reverse=True)
for i in array:
print(i,end=" ")
내림차순 정렬은
reverse=True
사용!
N명의 학생 정보가 있다. 학생 정보는 학생의 이름과 학생의 성적으로 구분된다. 각 학생의 이름과 성적 정보가 주어졌을 때 성적이 낮은 순서대로 학생의 이름을 출력하는 프로그램을 작성하라
입력
- 첫 번째 줄: 학생 수 N
- 두 번째 줄부터 N+1줄: 학생의 이름을 나타내는 문자열 A와 학생의 성적을 나타내는 정수 B
출력- 학생의 이름을 성적이 낮은 순서대로 출력
import sys
input = sys.stdin.readline
N = int(input())
students = []
for _ in range(N):
name, score = input().split()
students.append((name,int(score)))
students.sort(key=lambda x:x[1])
for i in students:
print(i[0],end=' ')
두 개의 배열 A와 B를 가지고 있다. 두 배열은 N개의 원소로 구성되어 있으며, 배열의 원소는 모두 자연수이다. 최대 K번의 바꿔치기 연산을 수행할 수 있다. 바꿔치기 연산이란 배열 A에 있는 원소 하나와 배열 B에 있는 원소 하나를 골라서 두 원소를 서로 바꾸는 것을 말한다. 최종 목표는 배열 A의 모든 원소의 합이 최대가 되도록 하는 것이다.
N,K 그리고 배열 A와 B의 정보가 주어졌을 때, 최대 K번의 바꿔치기 연산을 수행하여 만들 수 있는 배열 A의 모든 원소의 합이 최댓값을 출력하는 프로그램을 작성하시오.
입력
- 첫번째 줄에 N,K
- 두번째 줄에 A의 원소
- 세번째 줄에 B의 원소
출력- K번의 바꿔치기 연산 수행하여 만들수 있는 A의 합의 최댓값
import sys
input = sys.stdin.readline
N,K = map(int,input().split())
A = list(map(int,input().split()))
B = list(map(int,input().split()))
A.sort()
B.sort(reverse=True)
for i in range(K):
if A[i] < B[i]:
A[i] = B[i]
else:
break
print(sum(A))