본문 바로가기
알고리즘/백준

[백준 1388 / 바닥 장식 / JAVA]

by KDW999 2023. 6. 23.

https://www.acmicpc.net/problem/1388

 

1388번: 바닥 장식

형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나

www.acmicpc.net

 

문제 접근

문자 배열을 만들고 - 문자 체크를 위해 행으로만 쭉 검사 → - 문자일 경우 count + 1로 연속되는 판자 판단, 아니면 count = 0;

count가 1일 때만 필요 판자 갯수 + 1, count가 2든 100이든 필요 판자는 1개니까

 

이후 |문자는 열만 쭉 읽으면서 검사 후 총 판자 갯수 출력

import java.util.*;
import java.io.*;

public class Main {
	public static void main (String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int M = sc.nextInt();
		
		char[][] map = new char[N][M];
		
		sc.nextLine(); // nextInt()의 Enter 거르기 용도
		
		for(int i=0; i<N; i++) {
			String str = sc.nextLine();
			for(int j=0; j<M; j++) {
				map[i][j] = str.charAt(j);
			}
		}
		
		int sum = 0;
		// 행
		for(int i=0; i<N; i++) {
			int count = 0;
			
			for(int j=0; j<M; j++) {
			    if(map[i][j] == '-') count++;
			    else count = 0;
			    
			    if(count == 1) sum++;
			}
		}
		// 열
		for(int i=0; i<M; i++) {
			int count = 0;
			
			for(int j=0; j<N; j++) {
				if(map[j][i] == '|') count++;
				else count = 0;
				
				if(count == 1) sum++;
			}
		}
		
		System.out.println(sum);
	}
}

댓글