2021년 8월 14일 토요일 - 정말 오랜만에 백준 풀이를 올린다..!


오늘 올려볼 문제는 2799번 블라인드 라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

백준 문제 사진

오늘은 내 코드를 본 사람이 푼 문제 중에서 아무거나 하나 골라서 풀어보았다!

문제 고르는 고민을 덜어주셔서 감사해요!


입력 예제

백준 입력 예제


입력은 텍스트로 만들어낸 그래픽 같은 느낌의 입력이다!


사람이 보기에는 깔끔하니 좋지만 프로그래밍 하는 입장에서는 딱히 좋지는 않다는 것...




풀이 및 코드


이 문제는 워낙 간단하게 풀 수 있는 문제니 바로 코드를 보자!


풀이코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 입력 받기
        String[] input_nums = br.readLine().split(" ");

        // int로 바꾸기
        int m = Integer.parseInt(input_nums[0]), n = Integer.parseInt(input_nums[1]);

        // 블라인드의 형태 5가지 각각의 개수를 저장하는 배열
        int[] result = new int[5];

        // 처음 ##### 부분을 입력받는 부분, split 구문과 for문에 방해되기 때문에 입력만 받고 사용하지는 않는다.
        br.readLine();

        // m번 만큼 진행
        for(int i = 0; i < m; i++)
        {
            // 각 층의 창문들이 어떤 형태를 하고 있는지 저장하는 배열 (형태를 저장하는 것임, 개수 저장 X)
            int[] blinds = new int[n];

            for(int j = 0; j < 4; j++)
            {
                // 입력받고 #을 기준으로 split한다. 이 때 처음 창문은 인덱스 1번 부터 있다. 즉 배열의 크기는 n + 1!
                String[] input = br.readLine().split("#");

                for(int k = 0; k < n; k++)
                {
                    // 만약 이 창문에 *이 포함되어 있다면
                    if(input[k + 1].contains("*"))
                    {
                        // 해당하는 창문에 형태를 1 올려줌
                        blinds[k]++;
                    }
                }
            }

            // ##### 부분 처리해주는 구문
            br.readLine();

            for(int k = 0; k < n; k++)
            {
                // 각 형태에 개수를 1씩 올려줌
                result[blinds[k]]++;
            }
        }

        for(int i = 0; i < 5; i++)
        {
            bw.write(result[i] + " ");
        }
        bw.flush();

    }

}



제출 화면

백준 문제 맞았습니다


오늘 문제는 간단한 문제로 가지고 왔다...


물론 C언어 같이 제공하는 메소드가 적은 언어에서는 그리 간단한 문제는 아니지만 이런 자바와 같은 언어에서는 매우 쉬운 문제였다..!


요즘 개인적으로 진행하는 프로젝트 때문에 바빠서 글을 자주 못 올렸는데 그래도 1주일에 하나는 올려야 할 것 같아서 올리는 중이다..! ㅋㅋㅋ


시간이 되면 프로젝트 준비하는 과정도 정리해서 올려야겠다.

+ Recent posts