9465. 스티커 (Java)

2023. 10. 12. 12:49·Algorithm & Data Structures/BOJ

이문제는 DP(Dynamic Programing) 기법을 이용하여 

푸는 문제였으며

입력받는 2차원 배열 map과 동시에 같은 크기의 DP 배열을 생성하여

각 행마다 최댓값을 구하여 넣어주는 식의 코딩을 하였고

마지막 N-1 행에서 0번열 1번열의 최댓값을 비교하여 답을 출력하는 방법으로 코딩하였다.

package BOJ;

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

public class Main {

	static int[][] DP, map;
	static int N;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int TC = Integer.parseInt(br.readLine());
		for (int t = 0; t < TC; t++) {

			N = Integer.parseInt(br.readLine());
			map = new int[2][N];
			DP = new int[2][N];

			StringTokenizer st = new StringTokenizer(br.readLine());
			for (int i = 0; i < N; i++) {
				map[0][i] = Integer.parseInt(st.nextToken());
			}
			st = new StringTokenizer(br.readLine());
			for (int i = 0; i < N; i++) {
				map[1][i] = Integer.parseInt(st.nextToken());
			}

			DP[0][0] = map[0][0];
			DP[1][0] = map[1][0];

			for (int i = 1; i < N; i++) {
				if (i >= 2) {
					int go = Math.max(DP[0][i - 2], DP[1][i - 2]);
					DP[0][i] = Math.max(map[0][i] + go, map[0][i] + DP[1][i - 1]);
					DP[1][i] = Math.max(map[1][i] + go, map[1][i] + DP[0][i - 1]);
				} else {
					DP[0][i] = map[0][i] + DP[1][i - 1];
					DP[1][i] = map[1][i] + DP[0][i - 1];
				}
			}

			System.out.println(Math.max(DP[0][N - 1], DP[1][N - 1]));
		}
	}
}

 

'Algorithm & Data Structures > BOJ' 카테고리의 다른 글

13549. 숨바꼭질3 (Java)  (0) 2023.10.17
2206. 벽부수고 이동하기 (Java)  (0) 2023.10.16
11404. 플로이드 (Java)  (0) 2023.10.12
4485. 녹색 옷을 입은 애가 젤다지? (Java)  (1) 2023.10.11
17144. 미세먼지 안녕! (Java)  (2) 2023.10.11
'Algorithm & Data Structures/BOJ' 카테고리의 다른 글
  • 2206. 벽부수고 이동하기 (Java)
  • 11404. 플로이드 (Java)
  • 4485. 녹색 옷을 입은 애가 젤다지? (Java)
  • 17144. 미세먼지 안녕! (Java)
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (307) N
      • Algorithm & Data Structures (233) N
        • BOJ (91) N
        • SWEA (1)
        • Programers (137) N
        • Data Structures (3)
      • DB (21)
        • SQL (15)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SQL
    알고리즘
    동적계획법
    골드
    binarySearch
    Dijkstra
    다익스트라
    Java
    백트래킹
    백준
    프로그래머스
    후위순회
    dfs
    unionfind
    baekjoon
    PriorityQueue
    algorithm
    전위순회
    유니온파인드
    DynamicProgramming
    Union-Find
    구현
    Stack
    스택
    이분탐색
    투포인터
    BFS
    programmers
    dp
    경로압축
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
9465. 스티커 (Java)
상단으로

티스토리툴바