https://softeer.ai/practice/7369
위 문제는 레벨3인데 정답률이 조금 낮아서 긴장하고 문제를 읽었다..
그런데 백준에서 풀었던 문제와 매~우 유사해서,
장애물 없이 바로 풀 수 있었다.
백준 어떤 문제랑 비슷했더라.. 찾아봤는데
https://www.acmicpc.net/problem/11048
[11048번 이동하기] 문제와 매우 유사하다.
소프티어에서 다른점은,
중간에 한 구역에서만 value*2 한 값을 했을 때의 최대값을 구하는 것이다.
백준에서는 d[n][m] 값으로 다이나믹한 값을 정하는 변수를 지정했다면,
소프티어에서는 d[n][m][2] 로 배열값을 하나 더 추가하여,
지나간 자리에 value*2 를 한 값이 있는지(스프링쿨러를 설치하여 수확량이 2배되는 경우) 없는지를 체크하여
최대값을 구해주면 된다.
레벨3의 모든 문제가 이렇게 풀어본거에서 나와서 쉽게만 풀린다면 얼마나 좋을까...
▶ 백준 11048번 이동하기
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] nm = br.readLine().split(" ");
int n = Integer.parseInt(nm[0]);
int m = Integer.parseInt(nm[1]);
int[][] a = new int[n+1][m+1];
int[][] d = new int[n+1][m+1];
for(int i=1; i<=n; i++){
String[] line = br.readLine().split(" ");
for(int j=1; j<=m; j++){
a[i][j] = Integer.parseInt(line[j-1]);
d[i][j] = Math.max(d[i-1][j], d[i][j-1]) + a[i][j];
}
}
bw.write(String.valueOf(d[n][m]));
bw.close();
}
}
▶ Softeer 7369번 나무 수확
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int[][] a = new int[n+1][n+1];
int[][][] d = new int[n+1][n+1][2];
for(int i=1; i<=n; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j=1; j<=n; j++){
a[i][j] = Integer.parseInt(st.nextToken());
d[i][j][0] = Math.max(d[i-1][j][0], d[i][j-1][0]) + a[i][j];
d[i][j][1] = Math.max(d[i-1][j][0], d[i][j-1][0]) + a[i][j]*2;
d[i][j][1] = Math.max(Math.max(d[i-1][j][1], d[i][j-1][1]) + a[i][j], d[i][j][1]);
}
}
bw.write(String.valueOf(d[n][n][1]));
bw.close();
}
}
[Softeer]GINI야 도와줘 (1) | 2024.10.23 |
---|---|
[Softeer]로봇이 지나간 경로 (2) | 2024.10.22 |
[Softeer]Pipelined (3) | 2024.10.18 |
[Softeer]사물인식 최소 면적 산출 프로그램 (3) | 2024.10.18 |
[JAVA] 백준 16946번 벽 부수고 이동하기4 (0) | 2022.11.21 |