Algorithm/Greedy

1. 문제 정의큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더해 가장 큰수를 만드는 법칙이다. 이때 특정 인덱스에 해당하는 수가 K번 연속해서 더해줄 수 없다. 입력: 첫째 줄에 N(2이상 1000이하), M(1이상 10000이하), K(1이상 10000이하)가 주어진다. 둘째 줄에는 N개의 자연수(1이상 10000이하)가 주어진다. 이때 입력으로 주어지는 K는 항상 M 이하다.출력: 큰 수의 법칙에 따라 더해진 답을 출력한다.2. 풀이# 입력n, m, k = map(int, input().split())num_list = list(map(int, input().split()))# 첫 번째로 큰 수와 두 번째로 큰 수 뽑아냄max_num = max(num_list)num_li..
해당 문제는 수열 A가 주어졌을 때 원소들을 지우면서 "B[0] > B[1] B[3] "를 찾고, 다음 ""를 찾는 과정을 반복하면 문제를 해결할 수 있다. 이유는 다음과 같다. a > b e: 이 경우 >, 총 3번 반복했으므로 답은 4가 된다. b e , , d>e는 c>e만 남길 수 있다. 이때 be를 만족하고, ebe sequence[i+1]: flag = 1 result += 1 elif flag == 1 and sequence[i] < sequence[i+1]: flag = 0 result += 1 print(result+1)
코딩마루
'Algorithm/Greedy' 카테고리의 글 목록