ffinn92 / Keep-at-solve-it

꾸준히 알고리즘 풀기 위한 스터디 저장소입니다.
2 stars 3 forks source link

[220616][검봉][인프런](10-3) 최대 부분 증가수열 #78

Closed crispindeity closed 2 years ago

crispindeity commented 2 years ago

📌 문제

⭐️ 아이디어

🤔 고민한 내용

💪 새롭게 배운 내용

🆘 이해가 어려운 내용

❌ 해결하지 못한 이유

✅ 본인 풀이

🏋️‍♀️ 시도횟수 : 1회 | ⏱ 걸린시간 : 133ms | 💾 메모리 : 26MB

package etc;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class MaximumPartialIncreasingSequence {

    static class Main {
        private int solution(int[] numbers) {
            int answer = 0;

            int[] maximumLength = new int[numbers.length];
            maximumLength[0] = 1;

            for (int i = 1; i < numbers.length; i++) {
                int tmp = 0;
                for (int j = i - 1; j >= 0; j--) {
                    if (numbers[j] < numbers[i] && maximumLength[j] > tmp) {
                        tmp = maximumLength[j];
                    }
                }
                maximumLength[i] = tmp + 1;
                answer = Math.max(answer, maximumLength[i]);
            }
            return answer;
        }

        public static void main(String[] args) throws IOException {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
            Main main = new Main();

            int number = Integer.parseInt(bufferedReader.readLine());
            int[] numbers = new int[number];
            StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine(), " ");

            for (int i = 0; i < number; i++) {
                numbers[i] = Integer.parseInt(stringTokenizer.nextToken());
            }

            int result = main.solution(numbers);

            bufferedReader.close();

            bufferedWriter.write(String.valueOf(result));
            bufferedWriter.flush();
            bufferedWriter.close();
        }
    }
}

참고한 자료