알고리즘
[문제] 그리디 알고리즘 (큰 수의 법칙) - 20210527
grep.jj
2021. 5. 27. 11:53
- 시작시간 : 10시 48분
- 종료시간 : 11시 50분
- 문제 :
'큰 수의 법칙'은 일반적으로 통계 분야에서 다루어지는 내용이지만 동빈이는 본인만의 방식으로 다르게 사용하고 있다.동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다.
입력 조건
첫째 줄에 N(2<=N<=1000), M(1<=M<=10000), K(1<=K<=10000)의 자연수가 주어지며 각 자연수는 공백으로 구분
둘째줄에 N개의 자연수가 주어짐. 각 자연수는 공백으로 구분. 단, 각각의 자연수는 1이상 10000이하의 수로 주어짐
입력으로 주어지는 K는 항상 M보다 작거나 같다.
출력 조건
첫째 줄에 큰 수의 법칙에 따라 더해진 답을 출력
입력 예시
5 8 3
2 4 5 4 6
출력 예시
46
* 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5 = 46 - 풀이 :
자바 결과 - 회고 :
완성을 하고 나서야 M % K != 0 일 경우에만을 고려한 걸 알았다.
시작하기 전부터 다양한 예외 경우를 고려하는 습관이 필요한 것 같다.