본문 바로가기
알고리즘/과제

SW Expert Academy 4613. 러시아 국기 같은 깃발

by Lihano 2021. 8. 27.
반응형

풀이 언어 : JAVA

풀이 방법 : 완전 탐색

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Solution {
    static int N;
    static int M;
    static int[] White;
    static int[] Black;
    static int[] Red;

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

        int T = Integer.parseInt(br.readLine());

        for (int test_case=1; test_case<=T; test_case++) {
            StringTokenizer NM = new StringTokenizer(br.readLine());
            N = Integer.parseInt(NM.nextToken());
            M = Integer.parseInt(NM.nextToken());

            White= new int[N];
            Black= new int[N];
            Red= new int[N];

            for(int i=0; i<N; i++) {
                String row = br.readLine();
                for(int j =0; j<M; j++) {
                    char r = row.charAt(j);
                    if (r == 'W') White[i]++;
                    else if(r == 'B') Black[i]++;
                    else Red[i]++;
                }
            }

            int min = Integer.MAX_VALUE;
            for (int i=0; i<N-2; i++) {
                for (int j=i+1; j<N-1; j++) {
                    for (int k=j+1; k<N; k++) {
                        int sum = 0;

                        for(int p=0; p<=i; p++) sum +=White[p];
                        for(int p=i+1; p<=j; p++) sum+=Black[p];
                        for(int p=j+1; p<N; p++) sum+=Red[p];

                        int newNum = N*M - sum;
                        if (min > newNum) {
                            min = newNum;
                        }
                    }
                }
            }

            bw.write("#" + test_case + " " + min + "\n");
        }
        bw.close();
        br.close();
    }
}

 

링크

SW Expert Academy

반응형

'알고리즘 > 과제' 카테고리의 다른 글

백준 1181번 단어 정렬  (0) 2021.09.05
SW Expert Academy 2068. 최대수 구하기  (0) 2021.08.21
SW Expert Academy 2056. 연월일 달력  (0) 2021.08.14

댓글