카테고리 없음
[알고리즘 문제 풀이] 14719번 빗물 (구현)
컴맹 개발자
2024. 11. 16. 17:45
https://www.acmicpc.net/problem/14719
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
static int H,W;
static int puddleCount;
static boolean flag;
static int[][]arr;
static int ans;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st =new StringTokenizer(br.readLine());
H = Integer.parseInt(st.nextToken());
W = Integer.parseInt(st.nextToken());
//arr[H][W]
arr = new int[H][W];
st = new StringTokenizer(br.readLine());
for(int i=0;i<W;i++){
int rainH = Integer.parseInt(st.nextToken());
for(int j=0;j<rainH;j++){
arr[H-1-j][i]=1;
}
}
ans=0;
for(int i=H-1;i>=0;i--){
flag=false; // true면 블럭이 있음.
puddleCount=0;
for(int j=0;j<W;j++){
if(arr[i][j]==1){
flag=true;
if(puddleCount!=0) {
ans+=puddleCount;
puddleCount=0;
}
}
else if (arr[i][j]==0 && (flag) ){
puddleCount++;
}
}
}
System.out.println(ans);
}
}