티스토리 뷰

반응형

https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=391 

 

Softeer

앗 잠깐만요! 소프티어 이용 중 이 페이지를 보신다면 브라우저의 쿠키 때문인 경우가 많습니다. 접속한 브라우저의 쿠키 삭제(Ctrl + Shift + Del) 후 브라우저를 닫고 다시 접속해주세요. 그래도 안

softeer.ai

[문제]

남북으로 흐르는 개울에 동서로 징검다리가 놓여져 있다.

 

이 징검다리의 돌은 들쑥날쑥하여 높이가 모두 다르다. 철수는 개울의 서쪽에서 동쪽으로 높이가 점점 높은 돌을 밟으면서 개울을 지나가려고 한다.

 

돌의 높이가 서쪽의 돌부터 동쪽방향으로 주어졌을 때 철수가 밟을 수 있는 돌의 최대 개수는?

 

[풀이]

import java.util.*;
import java.io.*;


public class Main
{	
	
	static int N;
	static int[] A, ROCKS;
	static int COUNT;
	static int MAX;
	
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		
		N = sc.nextInt();
		A = new int[N];
		ROCKS = new int[N];
		COUNT = 0;
		MAX = -1;
		
		for (int i = 0; i < N; i++)
		{
			A[i] = sc.nextInt();
			ROCKS[i] = 1;
		}
		
		for (int i = 0; i < N; i++)
		{
			for (int j = 0; j <= i; j++)
			{
				if (A[j] < A[i])
					ROCKS[i] = Math.max(ROCKS[i], ROCKS[j] + 1);
			}
		}
		
		for (int i = 0; i < N; i++)
		{
			if (MAX < ROCKS[i])
				MAX = ROCKS[i];
		}
		
		System.out.println(MAX);
		
		sc.close();
	}

}
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함