Problem Solving
[코드트리] 구간 외 최대 숫자 C++
지옹
2024. 8. 17. 18:33
문제
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
코드
#include <iostream>
#define MAX_N 100000
using namespace std;
int num[MAX_N];
int leftMax[MAX_N];
int rightMax[MAX_N];
int main() {
int n, q;
cin >> n >> q;
for(int i=0; i<n; ++i){
cin >> num[i];
}
// fill left
leftMax[0]=num[0];
for(int i=1; i<n; ++i){
leftMax[i]=max(leftMax[i-1], num[i]);
}
// fill right
rightMax[n-1]=num[n-1];
for(int i=n-2; i>=0; --i){
rightMax[i]=max(rightMax[i+1], num[i]);
}
// q개의 질의
while(q--){
int a, b;
cin >> a >> b;
a--, b--; // 0-based
cout << max(leftMax[a-1], rightMax[b+1]) <<'\n';
}
return 0;
}