우규이인우윀
Eager To Learn 🌌
우규이인우윀
전체 방문자
였늘
μ–΄μ œ

λΈ”λ‘œκ·Έ 메뉴

  • 🏑 ν™ˆ
  • πŸš€ κΉƒν—ˆλΈŒ
  • β›… νƒœκ·Έ ν΄λΌμš°λ“œ
  • λΆ„λ₯˜ 전체보기 (217)
    • πŸ‘¨πŸ»‍πŸ’» PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm 기법 (1)
      • 바킹독 (21)
    • λΈ”λ‘œκ·Έ 이사 (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • 자료ꡬ쑰 (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • κ°œλ°œμ„œμ  (15)
      • 가상 λ©΄μ ‘ μ‚¬λ‘€λ‘œ λ°°μš°λŠ” λŒ€κ·œλͺ¨ μ‹œμŠ€ν…œ 섀계 기초 (1)
      • 였브젝트 - 쑰영호 (7)
      • μΉœμ ˆν•œ SQL νŠœλ‹ (7)
    • 회고 (2)
hELLO Β· Designed By μ •μƒμš°.
우규이인우윀

Eager To Learn 🌌

πŸ‘¨πŸ»‍πŸ’» PS/JAVA

[JAVA] λ°±μ€€ 11054번 【가μž₯ κΈ΄ 바이토닉 λΆ€λΆ„ μˆ˜μ—΄γ€‘

2022. 9. 24. 16:15


바이토닉 λΆ€λΆ„μˆ˜μ—΄μ˜ 길이λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄μ„œλŠ”,

 

μ–΄λ–€ μΈλ±μŠ€μ— μœ„μΉ˜ν•œ 수λ₯Ό κΈ°μ€€μœΌλ‘œ μ•žμ—μ„œλΆ€ν„° μ‹œμž‘ν•˜λŠ” κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„μˆ˜μ—΄μ˜ 길이와

 

λ’€μ—μ„œλΆ€ν„° μ‹œμž‘ν•˜λŠ” κ°€μž₯ κΈ΄ λΆ€λΆ„μˆ˜μ—΄μ˜ 길이λ₯Ό μ•Œμ•„μ•Όκ² λ‹€ 생각이 λ“€μ—ˆλ‹€.

 

 

 

[JAVA] λ°±μ€€ 11053번 【가μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄γ€‘

dp 배열을 μƒμ„±ν•˜μ—¬ dp[i] λŠ” Array[i]κΉŒμ§€μ˜ μ›μ†Œλ“€λ‘œ λ§Œλ“€ 수 μžˆλŠ” λΆ€λΆ„ μˆ˜μ—΄ 길이의 μ΅œλŒ“κ°’μ„ μž…λ ₯ν•  것이닀. 그리고 λΆ€λΆ„ μˆ˜μ—΄μ˜ κΈΈμ΄λŠ” μ΅œμ†Œ 1 값을 κ°€μ§€λ―€λ‘œ, dp의 λͺ¨λ“  μ›μ†ŒλŠ” λ””ν΄νŠΈ 1을 κ°€μ§„

yinq.tistory.com

 

μ›λ¦¬λŠ” μœ„ λ¬Έμ œμ™€ λ™μΌν•˜λ‹€.

 

λŒ€μ‹  μ•žμ—μ„œ λΆ€ν„° μ‹œμž‘ν•˜λŠ” 증가 λΆ€λΆ„μˆ˜μ—΄μ„ 기둝해놓을 dpAscλ°°μ—΄κ³Ό λ’€μ—μ„œ λΆ€ν„° μ‹œμž‘ν•˜λŠ” 증가 λΆ€λΆ„μˆ˜μ—΄μ„ 기둝해놓을 dpDsc λ‘κ°œμ˜ dp배열을 μƒμ„±ν•˜μ˜€λ‹€.

 

그리고 dpAsc와 dpDsc의 같은 인덱슀 κ°’μ˜ ν•©μ—μ„œ ν•΄λ‹Ή μΈλ±μŠ€κ°’μ€ 쀑볡이 되기 λ•Œλ¬Έμ—, 1을 λΊ€ 값이 바이토닉 λΆ€λΆ„μˆ˜μ—΄μ˜ 길이가 λœλ‹€.

 

 

μœ„ 그림을 보면 μ΄ν•΄ν•˜κΈ° μ‰¬μšΈ 것이닀.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.valueOf(br.readLine());
		int[] dpAsc = new int[N + 1];
		int[] dpDsc = new int[N + 1];
		int[] dpTotal = new int[N + 1];
		int[] array = new int[N + 1];
		String[] input = br.readLine().split(" ");
		for (int i = 0; i < input.length; i++) {
			array[i + 1] = Integer.valueOf(input[i]);
			dpAsc[i+1]=1;
			dpDsc[i+1]=1;
		}
		
		for(int i=1;i<=N;i++) {
			for(int j=1;j<i;j++) {
				if(array[i]>array[j] && dpAsc[i]<dpAsc[j]+1) {
					dpAsc[i]=dpAsc[j]+1;
				}
				if(array[N+1-i]>array[N+1-j] && dpDsc[N+1-i]<dpDsc[N+1-j]+1) {
					dpDsc[N+1-i]=dpDsc[N+1-j]+1;
				}
			}
		}
		for(int i=1;i<=N;i++) {
			dpTotal[i]=dpAsc[i]+dpDsc[i]-1;
		}
//		System.out.println(Arrays.toString(array));
//		System.out.println(Arrays.toString(dpAsc));
//		System.out.println(Arrays.toString(dpDsc));
//		System.out.println(Arrays.toString(dpTotal));
		Arrays.sort(dpTotal);
		System.out.println(dpTotal[N]);
		
	}
}
    'πŸ‘¨πŸ»‍πŸ’» PS/JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [JAVA] λ°±μ€€ 2579번 【계단 였λ₯΄κΈ°γ€‘
    • [JAVA] λ°±μ€€ 1912번 【연속합】
    • [JAVA] λ°±μ€€ 11722번 【가μž₯ κΈ΄ κ°μ†Œν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄γ€‘
    • [JAVA] λ°±μ€€ 11055번 【가μž₯ 큰 증가 λΆ€λΆ„ μˆ˜μ—΄γ€‘
    우규이인우윀
    우규이인우윀
    개발자 κΏˆλ‚˜λ¬΄

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”