문제
모르도르 지방의 아름다운 경치를 한 눈에 볼 수 있는 명산 오로드루인에는 길기로 유명한 등산로가 있습니다. 이 등산로는 산등성이를 따라 오르락내리락하며 구성되어 있지요. 이 등산로는 너무 길기 때문에 특수 장비(예를 들면, 절대반지 등)를 갖춘 사람이 아니라면 처음부터 끝까지 정복하기가 힘이 듭니다. 관광 자원 개척을 위해 이 등산로 중 몇 군데를 별도의 등산로로 개방하려고 합니다.
등산로에는 100미터 간격으로 표지판이 있는데, 각 표지판의 해발 고도를 측정한 자료가 있습니다. 이 때 등산로의 난이도는 등산로를 가다 만나는 표지판 중 최대 해발 고도와 최저 해발 고도의 차이입니다. 개방을 검토하고 있는 등산로의 일부가 주어질 때, 각 부분의 난이도를 계산하는 프로그램을 작성하세요.
출력
한 줄에 하나씩 개방을 고려하고 있는 각 등산로의 난이도를 출력합니다.
1.문제설명
개방하려고 하는 등산로의 난이도를 구하는 문제
2.알고리즘
Max-Min
3.소스코드
#include <stdio.h>
int GetLevel(int *pArr, int start, int end)
{
int Max, Min, i;
Max=pArr[start]; Min=pArr[start];
for(i=start+1;i<=end;i++)
{
if(pArr[i]>Max)
Max=pArr[i];
if(pArr[i]<Min)
Min=pArr[i];
}
return Max-Min;
}
int main(void)
{
int Case;
int Mountain_Way,Sign_Num,Start_Num,End_Num;
int Arr[100000]={0,};
int i;
scanf("%d", &Case);
while(Case--)
{
scanf("%d %d", &Sign_Num, &Mountain_Way);
for(i=0;i<Sign_Num;i++)
{
scanf("%d", &Arr[i]);
}
while(Mountain_Way--)
{
scanf("%d %d", &Start_Num, &End_Num);
printf("%d\n", GetLevel(Arr,Start_Num, End_Num));
}
}
return 0;
}
4.문제후기
오랜만에 문제를 풀어본다. 회사에서 AlgoSpot으로 Study를 한다길래
로그인 하고 쉬운문제를 풀어보았는데 ACM과는 다르게 문제가 한글로 되어있어 좋은거 같다. 꾸준히 풀어봐야겠다