The Kkang's man

[ 자바 / Java ] 백준 1388 : 바닥 장식 본문

알고리즘/BFS&DFS

[ 자바 / Java ] 백준 1388 : 바닥 장식

정낑깡 2021. 6. 27. 01:42

문제


 

 


 

풀이


  1. BufferedReader + StringTokenizer를 통해 / / 문자열을 입력받는다.
  2. 나눠진 문자열이 들어갈 이중배열 floor를 선언한다.
  3. 정답을 저장할 cnt를 선언한다.
  4. 입력받은 문자열을 charAt을 통해 하나씩 나누어 floor에 담는다.
  5. 배열 안에 담긴 문자가 ' - ' 일 경우 다음 칸이 ' | ' 이거나 마지막 칸일 경우 cnt++
  6. 배열 안에 담긴 문자가 ' | ' 일 경우 다음 줄이 ' - ' 이거나 마지막 줄일 경우 cnt++

 

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

public class Floor_1388 {
	public static void main(String[] args) throws IOException{
	
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int N = Integer.parseInt(st.nextToken());
		int M = Integer.parseInt(st.nextToken());
		
		char[][] floor = new char[N][M];
		int cnt = 0;
		int i, j;
		
		for(i=0; i<N; i++) {
			
			String a = br.readLine();
			
			for(j=0; j<M; j++) {
				
				floor[i][j] = a.charAt(j);
				
			}
		}
		
		for(i=0; i<N; i++){
			for(j=0; j<M; j++){
				
				if(floor[i][j] == '-'){
					if(floor[i][j+1] == '|' || j == M-1){
						// 다음 칸(j+1)이 '|' 이거나
						// 같은 행의 마지막 방인 겨우
						cnt++;
					}
				}
				
				if(floor[i][j] == '|'){
					if(floor[i+1][j] == '-' || i == N-1){
						// 다음 줄(i+1)이 '-' 이거나
						// 같은 열의 마지막 방인 경우
						cnt++;
					}
				}
			}
		}
		System.out.println(cnt);
	}
}
Comments