정렬 81

[정렬] 이코테 (파이썬) 안테나 풀이

[문제] 일직선상의 마을에 여러 채의 집이 위치해 있습니다. 이 중에서 특저 위치의 집에 특별히 한 개의 안테나를 설치하기로 결정했습니다. 효율성을 위해 안테나로부터 모든 집까지의 거리의 총합이 최소가 되도록 설치하려고 합니다. 이때 안테나는 집이 위치한 곳에만 설치할 수 있고, 논리적으로 동일한 위치에 여러 개의 집이 존재하는 것이 가능합니다. 집들의 위치 값이 주어질 때, 안테나를 설치할 위치를 선택하는 프로그램을 작성하세요. 예를 들어 N = 4이고, 각 위치가 1, 5, 7, 9일 때를 가정하겠습니다. 이 경우 5의 위치에 설치했을 때, 안테나로부터 모든 집까지의 거리의 총합이 (4 + 0 + 2 + 4) = 10으로, 최소가 됩니다. [입력 조건] 1. 첫째 줄에 집의 수 N이 자연수로 주어집니..

[정렬] 이코테 (파이썬) 국영수 풀이

[문제] 도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어집니다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하세요. 1. 국어 점수가 감소하는 순서로 2. 국어 점수가 같으면 영어 점수가 증가하는 순서로 3. 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 4. 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키코드에서 대문자는 소문자보다 작으므로 사전 순으로 앞에 옵니다.) [입력 조건] 1. 첫째 줄에 도현이네 반의 학생 수 N (1

백준(Python) 11557번 Yangjojang of The Year 풀이

Python으로 구현한 11557번 Yangjojang of The Year 문제 풀이입니다. https://www.acmicpc.net/problem/11557 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net t = int(input()) for _ in range(t) : n = int(input()) data = list(input().split()) for _ in range(n - 1) : a, b = input().split() if int(data[1]) < int(b) ..

백준(Python) 5576번 콘테스트 풀이

Python으로 구현한 5576번 콘테스트 문제 풀이입니다. https://www.acmicpc.net/problem/5576 5576번: 콘테스트 최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다. 이번이 두 대 www.acmicpc.net w_data = [] k_data = [] for i in range(20) : if i < 10 : w_data.append(int(input())) else : k_data.append(int(input())) w_data.sort(reverse=True) k_data.sort(reverse=True) print(sum(w_data[:3]), ..

백준(Python) 10610번 30 풀이

Python으로 구현한 10610번 30 문제 풀이입니다. https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net n = list(input()) n.sort(reverse = True) sum = 0 for i in n : sum += int(i) if sum % 3 != 0 or "0" not in n : print(-1) else : print(''.join(n)) 이 문제는 30의 배수가 되는 가장 큰 수를 구하는 문제로, 30의 배수가 되려면 ..

백준(Python) 1037번 약수 풀이

Python으로 구현한 1037번 약수 문제 풀이입니다. https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net n = int(input()) data = list(map(int, input().split())) max_value = max(data) min_value = min(data) print(max_value * min_value) 입력받은 리스트는 모두 진짜 약수이기 때문에 값들 중 최솟값과 최댓값을 구하여 두 수의 곱을 출력한다.

백준(Python) 1026번 보물 풀이

Python으로 구현한 1026번 보물 문제 풀이입니다. https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net n = int(input()) a = list(map(int, input().split())) b = list(map(int, input().split())) result = 0 for i in range(n) : result += min(a) * max(b) a.pop(a.index(min(a))) b.pop(b.index(max(..

[정렬] 이코테 (파이썬) 두 배열의 원소 교체 풀이

[문제] 동빈이는 두 개의 배열 A와 B를 가지고 있다. 두 배열은 N개의 원소로 구성되어 있으며, 배열의 원소는 모두 자연수이다. 동빈이는 최대 K번의 바꿔치기 연산을 수행할 수 있는데, 바꿔치기 연산이란 배열 A에 있는 원소 하나와 배열 B에 있는 원소 하나를 골라서 두 원소를 서로 바꾸는 것을 말한다. 동빈이의 최종 목표는 배열 A의 모든 원소의 합이 최대가 되도록 하는 것이며, 여러분은 동빈이를 도와야 한다. N, K, 그리고 배열 A와 B의 정보가 주어졌을 때, 최대 K번의 바꿔치기 연산을 수행하여 만들 수 잇는 배열 A의 모든 원소의 합의 최댓값을 출력하는 프로그램을 작성하시오. ... ... 생략 ... [입력 조건] 1. 첫 번째 줄에 N, K가 공백으로 구분되어 입력된다. (1