๋ฌธ์ œ

https://www.acmicpc.net/problem/2846

์„ค๋ช…

๋‚œ์ด๋„๊ฐ€ ์–ด๋ ต์ง€ ์•Š์„๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋ค๋ณ๋‹ค๊ฐ€ ์˜คํžˆ๋ ค ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ณ  ๋งŒ ๋ฌธ์ œ๋‹ค. ์ˆ˜์—ด์˜ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์ธ์ง€ ๊ฒ€์‚ฌํ•˜๊ณ  ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์˜ ์–‘๋์˜ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ , ์ฆ๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜์•ˆ์—์„œ๋„ ๋” ์ฐจ์ด๊ฐ€ ํฐ ๊ฒƒ์„ ๊ตฌ๋ณ„ํ•ด์•ผํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์„ธ๊ฐ€์ง€๋ฅผ ๊ณ ๋ คํ•œ ์†Œ์Šค๋ฅผ ์งœ์•ผํ–ˆ๋Š”๋ฐ ์ด๋กœ์ธํ•ด ์†Œ์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์ •๋ฆฌ๋˜์ง€ ์•Š๊ณ  ๋งžํžˆ๊ธด ํ–ˆ์ง€๋งŒ ์ŠคํŒŒ๊ฒŒํ‹ฐ ์ฝ”๋“œ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ๋“ฏ ํ•˜๋‹ค. ๋‚˜์ค‘์— ์‹ค๋ ฅ์ด ์–ด๋Š์ •๋„ ํ–ฅ์ƒ๋˜๋ฉด Basic Algebra๋ฅผ ๋ณต์Šต๊ฒธ์œผ๋กœ ๋‹ค์‹œ ๋” ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋กœ ํ’€์–ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

์ฝ”๋“œ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int start = 0, end = 0, temp_start, temp_end;
void save()
{
	if (end - start < temp_end - temp_start)
	{
		start = temp_start;
		end = temp_end;
	}
}
int main()
{
	int n, array[1000], increase = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &array[i]);
		if (i != 0)
		{
			if (array[i - 1] < array[i])
			{
				if(increase  == 0)
					temp_start = array[i - 1];
				if (i == n-1)
				{
					temp_end = array[i];
					save();
				}
				increase++;
			}
			else if (array[i - 1] >= array[i])
			{
				if (increase != 0)
				{
					if (i != n-1)
						temp_end = array[i - 1];
					else
						temp_end = array[i];
					save();
					increase = 0;	
				}
			}
			
		}
	}
	printf("%d", end-start);
	return 0;
}