-
반응형
level.goorm.io/exam/47881/%EA%B7%BC%EB%AC%B5%EC%9E%90%ED%9D%91/quiz/1
구름LEVEL
코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이
level.goorm.io
-풀이-
모든 수를 같게만드려면, 그 수열중 최솟값으로 다 바꿔야 한다.
최솟값을 포함한 k개만큼을 최솟값으로 변경 시킨뒤, k개의 양끝을 기준으로 k-1개를 늘리고, 다시 그 양끝을 기준으로 k-1개를 늘리면된다.
따라서
처음 1번은 최솟값을 기준으로 k개를 변경시키는 작업, 나머지 횟수는 n-k개를 k-2개로 나누는 작업을 시행한 횟수가 된다. 이때 k-2개로 나누어떨어지지 않으면 한번 더 변경시켜야하므로 조건을 추가해주자
-시간복잡도-
단순 계산이므로 O(1)이된다.
-코드-
#include <stdio.h> int main() { int arr[100000]; int n,k,i; int cnt=1; scanf("%d %d",&n,&k); for(i=0;i<n;i++){ scanf("%d",&arr[i]); } n-=k; k--; cnt+=(n%k==0?n/k:n/k+1); printf("%d",cnt); return 0; }
반응형'문제풀이 > 구름' 카테고리의 다른 글
[구름 Level] 구슬 주머니 (0) 2021.05.25 [구름 Level] 방 탈출하기 (0) 2021.05.25 [구름LEVEL] JMOS (0) 2021.03.19 [구름LEVEL] 사은품 교환하기 (0) 2021.03.19 댓글