[JAVA] Boj_2491 | 수열

문제

  • [Boj 2491- 수열]
  • 해결방법 : 이게 왜 dp 문제 인지 이해가 안갔던 문제이다 그래도 문제를 풀어서 넘어가긴 했다…ㅋㅋ 주어진 조건만 처리한다면 쉬운 dp 문제..ㅎㅎ

나의 풀이

package day3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Boj_2491 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[n];
int min = 0;
int tmp=1; // 수열이 커질 수록 카운팅
int answer=1;
//오름차순 가장 큰 수열
for(int i=0;i<n;i++) {
arr[i]=Integer.parseInt(st.nextToken()); //값을 하나씩 입력 받으면서 넘어가기
if(i==0) { //초기값은 min으로 선언하고 다음으로 이동
min=arr[0];
continue;
}
if(min<=arr[i]) {
tmp++;
}
else {
tmp=1;
}
answer=Math.max(answer, tmp); //큰 수열을 저장
//System.out.println("i"+i+", tmp "+tmp);
min=arr[i];// 다음번에는 자신보다 높은 숫자가 나와야하므로 값 변경
}
// System.out.println(answer);
int max = arr[0];
tmp=1;
//내림차순 가장 큰 수열
for(int i=1;i<n;i++) {
if(max>=arr[i]) {
tmp++;
}
else {
tmp=1;
}
answer=Math.max(answer, tmp);
max=arr[i];
}
System.out.println(answer);
}
}
view raw Boj_2491.java hosted with ❤ by GitHub

You might also enjoy