본문 바로가기
반응형

파이썬 정렬11

[Python][이코테] 두 배열의 원소 교체 동빈이는 두 개의 배열 A와 B를 가지고 있다. 두 배열은 N개의 원소로 구성되어 있으며, 배열의 원소는 모두 자연수이다. 동빈이는 최대 K번의 바꿔치기 연산을 수행할 수 있는데, 바꿔치기 연산이란 배열 A에 있는 원소 하나와 배열 B에 있는 원소 하나를 골라서 두 원소를 서로 바꾸는 것을 말한다. 동빈이의 최종 목표는 배열 A의 모든 원소의 합이 최대가 되도록 하는것이며, 여러분은 동빈이를 도와야 한다. 입력 조건 첫 번째 줄에 N, K가 공백으로 구분되어 입력된다. (1 ≤ N ≤ 100,000, 0 ≤ K ≤ N) 두 번째 줄에 배열 A의 원소들이 공백으로 구분되어 입력된다. 모든 원소는 10,000,000보다 작은 자연수이다. 세 번째 줄에 배열 B의 원소들이 공백으로 구분되어 입력된다. 모든 원.. 2022. 10. 9.
[Python][이코테] 성적이 낮은 순서로 학생 출력하기 입력 조건 첫 번째 줄에 학생의 수 N이 입력된다. (1 ≤ N ≤ 100000) 두 번째 줄부터 N + 1번째 줄에는 학생의 이름을 나타내는 문자열 A와 학생의 성적을 나타내는 정수 B가 공백으로 구분되어 입력된다. 문자열 A의 길이와 학생의 성적은 100 이하의 자연수이다. 출력 조건 모든 학생의 이름을 성적이 낮은 순서대로 출력한다. 성적이 동일한 학생들의 순서는 자유롭게 출력해도 괜찮다. 입력 예시 2 홍길동 95 이순신 77 출력 예시 이순신 홍길동 내 코드 n = int(input()) data = {} for _ in range(n): input_data = input().split() data[input_data[0]] = int(input_data[1]) sorted_data = sort.. 2022. 10. 8.
[Python][이코테] 위에서 아래로 입력 조건 첫째 줄에 수열에 속해 있는 수의 개수 N이 주어진다. (1 ≤ N ≤ 500) 둘째 줄부터 N + 1번째 줄까지 N개의 수가 입력된다. 수의 범위는 1 이상 100000 이하의 자연수이다. 출력 조건 입력으로 주어진 수열이 내림차순으로 정렬된 결과를 공백으로 구분하여 출력한다. 동일한 수의 순서는 자유롭게 출력해도 괜찮다. 입력 예시 3 15 27 12 출력 예시 27 15 12 # 6-7 정렬 위에서 아래로 n = int(input()) data = [] for _ in range(n): data.append(int(input())) data.sort(reverse=True) for i in range(n): print(data[i], end=' ') 2022. 10. 7.
[Python][이코테] sort, sorted 정렬 파이썬에는 기본적으로 정렬 가능한 라이브러리 주어진다. sort(), sorted() 위의 라이브러리는 퀵정렬과 비슷한 합병 정렬(Merge Sort) 기반으로 만들어졌으며 합병정렬은 퀵정렬보단 느리지만 최악의 경우에도 O(NlogN)을 보장한다. sorted() arr1 = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] result1 = sorted(arr1) print(result1) sort() arr2 = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] arr2.sort() print(arr2) 주의할 점은 sorted()는 정렬된 값을 리턴하고 정렬 대상은 정렬되지 않는다. sort()는 리턴값이 없으며 정렬하고자 하는 대상 자체를 정렬시킨다. arr1 = [7, 5, 9, 0,.. 2022. 10. 6.
반응형