[백준/BOJ]2847. 게임을 만든 동준이 [Silver 4]

  1. 게임을 만든 동준이

문제출처 : https://www.acmicpc.net/problem/2847

실제로 문제읽다가 실증나서 유투브1시간동안보다가 이제 풀어야지~ 하고 5분만에 풀었다.
그만큼 쉽다는 뜻이다.

code

#include <stdio.h>
int main()
{
	int N, score[100] = { 0 }, i, cnt = 0;
	scanf("%d", &N);
	for (i = 0; i < N; i++)
		scanf("%d", &score[i]);
	for (i = N - 2; i >= 0; i--)
	{
		while (score[i] >= score[i + 1])
		{
			score[i]--;
			cnt++;
		}
	}
	printf("%d", cnt);
	return 0;
}

문제에서 항상 답이존재하는 경우만 취급한다고 했으니까, 항상 난이도순으로 입력을받을것이고, 곧 점수가 오름차순이 되어야 한다는것을 의미한다.

그러니까 마지막으로 입력받은(인덱스 N-1인)점수가 가장 큰점수이여야 한다.
점수를 내리는것을 최소화해야하니까 최소의 경우는 1만큼 차이나야하니까,
반복문과 조건으로 score[i]가 score[i+1]보다 작아질때까지 -1을 빼고, cnt를 세주면된다.

좋은 웹페이지 즐겨찾기