๋ฌธ์
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;
}