Problem Solving/Baekjoon

[백준] 12927 배수 스위치 - Greedy / Java

graycode 2023. 5. 12. 19:39

 문제 링크

 

12927번: 배수 스위치

첫째 줄에 전구의 상태가 1번 전구부터 차례대로 주어진다. Y는 전구가 켜 있는 경우, N은 전구가 꺼져있는 경우이다. 전구의 개수는 1보다 크거나 같고 1,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

 풀이 과정

 

 풀이 코드

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

        StringBuilder sb = new StringBuilder(" " + br.readLine());

        int cnt = 0;
        for (int i = 1; i < sb.length(); i++) {
            if (sb.charAt(i) == 'Y') {
                cnt++;
                for (int j = i; j < sb.length(); j += i)
                    sb.setCharAt(j, sb.charAt(j) == 'Y' ? 'N' : 'Y');
            }
        }

        bw.write(String.valueOf(cnt));
        bw.flush();
    }

}