728x90
반응형
문제
접근방식
빗물을 가득 채운 후에 왼쪽 위, 오른쪽 위에서부터 탐색하면서 빗물을 빼주는 식으로 생각했다. 로직 자체가 간단해서 아이디어만 잘 떠올리면 쉽게 풀 수 있을듯하다
풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int H = Integer.parseInt(st.nextToken());
int W = Integer.parseInt(st.nextToken());
int[][] board = new int[H][W];
int total = H*W;
st = new StringTokenizer(br.readLine());
for(int i=0;i<W;i++) {
int x = Integer.parseInt(st.nextToken());
for (int j = H-1; j >= H-x; j--) {
board[j][i] = 1;
total--;
}
}
for (int i = 0; i < H; i++) {
for (int j = 0; j < W; j++) {
if(board[i][j] == 1) break;
else {
board[i][j] = -1;
total--;
}
}
for (int j = W-1; j >=0; j--) {
if(board[i][j] == 1) break;
else if(board[i][j]!=-1){
total--;
}
}
}
System.out.println(total);
}
}
728x90
'코딩테스트' 카테고리의 다른 글
[백준 14503] 로봇 청소기 자바 - 시뮬레이션 (1) | 2023.10.16 |
---|---|
[백준 17281] 야구 자바 - 완전탐색 (0) | 2023.10.13 |
[백준 17265] 나의 인생에는 수학과 함께 자바 - DFS (1) | 2023.10.10 |
[백준 2864] 5와 6의 차이 자바 문자열 (0) | 2023.06.15 |
[백준 2935] 소음 자바 문자열 (0) | 2023.06.15 |