(자바) 백준 20365 – 블로그 2 (자바)

색인

    쉬운 목차

    문제 : boj20365


    (자바) 백준 20365 - 블로그 2 (자바) 1

    필요한 알고리즘

    • 그리디 알고리즘
      • 이것은 Greed 방법을 사용하여 해결할 수 있는 문제입니다.

    ※ 제 코드에서는 왜 메인함수에 로직을 직접 작성하지 않았는지, 왜 Scanner 대신 BufferedReader를 사용했는지,백준을 자바로 풀 때 팁과 주의사항‘ 글을 읽어주세요. 백준을 자바로 풀기 시작하는 분들이나 백준을 자바로 풀기 팁이 필요한 분들에게 추천합니다.

    설명

    다음 두 가지 경우 중 더 작은 수를 선택하는 것을 고려했습니다.

    1. 전체를 파란색으로 칠한 후 ‘R’을 연속해서 빨간색으로 칠합니다.

    2. 전체를 빨간색으로 칠한 후 연속된 ‘B’를 파란색으로 칠합니다.

    따라서 입력으로 받은 문자열에서 연속된 ‘R’ 그룹과 연속된 ‘B’ 그룹의 개수를 센다.

    (코드의 rCnt 및 bCnt)

    그리고 답은 둘 중 더 작은 것에 대해 +1입니다(먼저 전체를 반대 색상으로 칠해야 하기 때문입니다).

    암호: 깃허브

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    public class Main {
    
        private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1<<16);
    
        public static void main(String() args) throws Exception {
            new Main().solution();
        }
    
        public void solution() throws Exception {
            int n = Integer.parseInt(br.readLine());
            String problem = br.readLine();
            int bCnt = 0;
            int rCnt = 0;
            char bf="\0";
            for (int i = 0; i < n; i++) {
                char cur = problem.charAt(i);
                if (cur!
    =bf) { if (cur=='R') rCnt++; else bCnt++; } bf = cur; } System.out.println(Math.min(rCnt, bCnt) + 1); } }