컴공생의 다이어리

큰 수의 법칙 본문

Development/Algorithm & Coding Test

큰 수의 법칙

컴공 K 2020. 12. 17. 16:31

큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하야 가장 큰 수를 만드는 법치이다. 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특정이다.

 

질문

배열의 크기 N, 숫자가 더해지는 횟수 M, 그리고 K가 주어질 때 큰 수의 법칙에 따른 결과를 출력하시오.

 

 

코드로 구현

아래는 파이썬으로 구현한 코드이다.

N,M,K=map(int,input().split())
data=list(map(int,input().split()))

data.sort()
first=data[N-1]
second=data[N-2]

result=0

count1=(M//(K+1))*K+M%(K+1)
count2=M-count1

result=count1*first+count2*second

print(result)

 

아래는 c/c++으로 구현한 코드이다.

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
	int n, M, K;
	int arr[1000] = { 0, };
	std::cin >> n >> M >> K;
	for (int i = 0; i < n; i++) {
		std::cin >> arr[i];
	}
	sort(arr, arr + n);
	int first = arr[n - 1];
	int second = arr[n - 2];

	int result = 0;
	int count1 = M / (K + 1) * K + M % (K + 1);
	int count2 = M - count1;
	result = count1 * first + count2 * second;
	std::cout << result;
	return 0;
}

 

 

www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791162243077

 

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 교보문고

IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년부터 2020년까지의 코딩 테스트와 알고리즘 대회의 기출문제를 엄선하여 수록하였다. 최근 5년간의 코딩 테스트 기출문제

www.kyobobook.co.kr

 

728x90

'Development > Algorithm & Coding Test' 카테고리의 다른 글

모험가 길드  (0) 2020.12.18
1이 될 때까지  (0) 2020.12.17
숫자 카드 게임  (0) 2020.12.17
거스름돈  (0) 2020.12.17
CodeUp 기초 100문제  (0) 2020.11.20
Comments