본문 바로가기
Problem Solving/Baekjoon

[백준] 13413 오셀로 재배치 - Greedy / Java

by graycode 2023. 4. 12.

 문제 링크

 

13413번: 오셀로 재배치

로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검

www.acmicpc.net

 

 풀이 과정

초기 상태와 목표 상태를 비교하여 초기 상태의 W 와 B 가 변경되는 횟수를 각각 구하여,

두 값 중 큰 값이 연산의 최소 횟수가 된다.

 

 풀이 코드

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));

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

        StringBuilder sb = new StringBuilder();
        while (t-- > 0) {
            int n = Integer.parseInt(br.readLine());

            String src = br.readLine();
            String tgt = br.readLine();

            int w = 0, b = 0;
            while (n-- > 0) {
                if (src.charAt(n) != tgt.charAt(n)) {
                    if (src.charAt(n) == 'W')
                        w++;
                    else
                        b++;
                }
            }

            sb.append(Math.max(w, b)).append("\n");
        }

        bw.write(sb.toString());
        bw.flush();
    }

}

댓글