그리디 : 큰 수의 법칙

주리·2022년 10월 13일
0

코테_그리디

목록 보기
2/10
post-thumbnail

변수

  1. N : 배열의 크기
  2. M : 숫자가 더해지는 횟수
  3. K : 젤 큰수가 더해질 수 있는 최대 수
  4. listN : 주어지는 배열
  5. first : 배열 중 가장 큰 수
    second : 배열 중 두번째로 큰 수
  6. total : 더해지는 수

로직

  1. NMK 입력받기
  2. N list 입력받기
  3. sort() 로 정렬 -> 가장큰수 두번째로큰수 찾기
  4. for M 만큼 돌면서
    K만큼 first를 + (M-1 , K-1)
    한번 second를 + (M-1)
    위 둘을 반복,,, M=0이될때까지

코드

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

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

total = 0

for data in range (0,M) :
  total += first
  k -= 1
  M -= 1

  if (M==0):
    break
  if(k==0):
    total += second
    M -=1
    k = K
    if (M==0) :
      break

print(total)
profile
완벽한 글 보다, 그 과정들을 기록하는 개발자

0개의 댓글