본문 바로가기

알고리즘/그리디

큰 수의 법칙

동빈이의 큰수의 법칙은 다양한 수로 이루어진 배열이 있을 떄 주어진 수들을 M번 더하여
가장 큰수를 만드는 방법이다. 단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번을 초과하여
더해 질수 없는 것이 이법칙의 특징이다.
예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때, M이 8이고 K가 3이라고 가정하자
이 경우 특정한 인덱스의 수가 연속해서 세번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는
6 + 6 + 6 + 5 + 6 + 6 + 6 + 546이 된다.
, 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다. 예를 들어
순서대로 3, 4, 3, 4, 3으로 이루어진 배열이 있을 때 M이 7이고 K가 2라고 가정하자.
이 경우 두번째 원소에 해당하는 4와 네 번째 원소에 해당하는 4를 번갈아 두번씩 더하는 것이 가능하다.
결과적으로 4 + 4 + 4 + 4 + 4 + 4 + 4 28이 도출된다.
배열의 크기 N, 숫자가 더해지는 횟수 M, 그리고 K가 주어질 떄 동빈이의 큰수의 법칙에 따른 결과를
제출하시오

입력 조건
첫째 줄에 N(2 <= N <= 1000), M(1 <= M <= 10000), K(1 <= K <= 10000)
의 자연수가 주어지며 각자연수는 공백으로 구분한다.
둘째 줄에 N개의 자연수가 주어진다. 각 자연수는 공백으로 구분한다. 단, 각각의 자연수는 1 이상 10000 이하의 수로 주어진다.
입력으로 주어지는 K는 항상 M보다 작거나 같다.

출력 조건
첫째 줄에 동빈이의 큰수의 법칙에 따라 더해진 답을 출력한다.

 

TIP

1. 리스트를 받고 가장큰 수 와 가장 작은 수만 사용이 되며 이 두숫자가 이루는 수열의 규칙을 찾자

2. 수열의 규칙을 파악하여 가장 큰수가 몇번 더해 있는지, 가장 작은수가 몇번 더해 있는지 찾자.

 

'알고리즘 > 그리디' 카테고리의 다른 글

동전0 - 백준알고리즘 11047번  (0) 2020.08.15
ATM - 백준 알고리즘 11399번  (0) 2020.08.13
1이 될 때 까지  (0) 2020.08.11
숫자 카드 게임  (0) 2020.08.11
거스름 돈  (0) 2020.08.11