Problem Solving/Baekjoon

[백준] 6245 Cow Solitaire - Dynamic Programming / Java

graycode 2023. 12. 2. 16:46

 문제 링크

 

6245번: Cow Solitaire

Late summer on the farm is a slow time, very slow. Betsy has little to do but play cow solitaire. For self-evident reasons, cow solitaire is not so challenging as any number of solitaire games played by humans. Cow solitaire is played using an N x N (3 <=

www.acmicpc.net

 

 풀이 코드

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 Main {

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

        int n = Integer.parseInt(br.readLine());
        int[][] mat = new int[n][n];
        for (int i = n - 1; i >= 0; i--) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int j = 0; j < n; j++) mat[i][j] = convert(st.nextToken().charAt(0));
        }

        for (int i = 1; i < n; i++) {
            mat[i][0] += mat[i - 1][0];
            mat[0][i] += mat[0][i - 1];
        }

        for (int i = 1; i < n; i++) for (int j = 1; j < n; j++) mat[i][j] += Math.max(mat[i - 1][j], mat[i][j - 1]);

        bw.write(String.valueOf(mat[n - 1][n - 1]));
        bw.flush();
    }

    private static int convert(char c) {
        switch (c) {
            case 'A':
                return 1;
            case 'T':
                return 10;
            case 'J':
                return 11;
            case 'Q':
                return 12;
            case 'K':
                return 13;
            default:
                return c - '0';
        }
    }

}