티스토리 뷰
문제
동빈이의 큰수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰수를 만드는 방법이다. 단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다.
예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때, M이 8이고 K가 3이라고 가정하자.
이 경우 특정한 인덱스의 수가 연속해서 세 번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5인 46이 된다. 단, 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다.
예를 들어 순서대로 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보다 작거나 같다.
출력 조건
- 첫째 줄에 동빈이의 큰수의 법칙에 따라 더해진 답을 출력한다.
입력 예시 출력 예시
5 8 3 46
2 4 5 4 6
오 그리디는 쉽지 ㅎ 하고 호기롭게 도전
n,m,k = list(map(int,input().split()))
arr = list(map(int,input().split()))
#입력
res = 0
arr.sort()
#정렬
"""
tmp = m // k
tmp *= k
m -= tmp #m값 갱신
res += arr[-1] * tmp
#가능한 최대 수 다 더해두기
res += arr[-2] * m
print(res)
이렇게 풀면 안됨........... 왜냐면 5 6 3 / 2 4 5 4 6 일 때 6+6+6+5+6+6 인데 이렇게 하면 6+6+6+6+6+6 이 됨..
아예 반복문을 쓰던가 반복되는 수열을 찾던가!
"""
ㅋㅋ
너무 단순하게 생각했더니 바보처럼 해버렸덩....
가장 큰 수가 몇 번 더해지나 단순하게 생각했는데 k가 아니라 k+1까지 수열 단위로 생각했어야 했다.
n,m,k = list(map(int,input().split()))
arr = list(map(int,input().split()))
#입력
res = 0
arr.sort()
#정렬
cnt = 0
cnt += int(m / (k+1)) * k
#수열이 반복되는 횟수
cnt += m % (k+1)
#나누어 떨어지지 않았을 때 가장 큰 수를 더 더해줘야하는 횟수
res += arr[-1] * cnt
res += arr[-2] * (m - cnt)
print(res)
짜잔슨 ㅋ
'켠김에 왕까지 > 이것이 코딩테스트다' 카테고리의 다른 글
[이것이 코딩테스트다] 시각 (Python) (0) | 2022.12.29 |
---|---|
[이것이 코딩테스트다] 상하좌우 (Python) (0) | 2022.12.29 |
[이것이 코딩테스트다] 숫자 카드 게임(Python) (0) | 2022.12.28 |
[이것이 코딩테스트다] 왕실의 나이트 (C++) (0) | 2021.02.05 |
[이것이 코딩테스트다] 1이 될 때까지 (C++, Python) (0) | 2021.01.27 |
- Total
- Today
- Yesterday
- 멋쟁이사자처럼
- JS
- 멋사
- IT
- Python
- 컴공
- 인프런
- 신장트리
- react
- 이것이코딩테스트다
- 리액트
- 백준
- 파이썬
- 개발자
- JavaScript
- 이것이 코딩테스트다
- HTML
- 알고리즘
- 크루스칼
- 홍대
- 깃허브
- 백엔드
- BOJ
- 홍익대
- CSS
- github
- 코딩테스트
- 골드5
- 코테
- 코딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |