[ 문제 ]
강호는 전구 N개를 가지고 있다.
전구는 1번부터 N번까지 번호가 매겨져 있으며, 일렬로 놓여져 있다.
전구는 켜져있거나 꺼져있다.
강호는 모든 전구를 끄려고 한다.
강호는 전구를 켜고 끌 수 있는 스위치 N개를 가지고 있고, 스위치도 1번부터 N번까지 번호가 매겨져 있다.
i번 스위치는 i의 배수 번호를 가지는 전구의 상태를 모두 반전시킨다.
현재 전구의 상태가 주어졌을 때, 모든 전구를 끄기 위해서 스위치를 몇 번 눌러야하는지 구하는 프로그램을 작성하시오.
[ 입력 ]
- 첫째 줄에 전구의 상태가 1번 전구부터 차례대로 주어진다.
- Y는 전구가 켜 있는 경우, N은 전구가 꺼져있는 경우이다.
- 전구의 개수는 1보다 크거나 같고 1,000보다 작거나 같은 자연수이다.
[ 출력 ]
- 모든 전구를 끄기 위해서 스위치를 몇 번 눌러야 하는지 출력한다.
- 만약, 모든 전구를 끌 수 없다면 -1을 출력한다.
[ 예제 입력 ]
YYYNYYYNYYYNYYNYYYYN
[ 예제 출력 ]
4
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
char[] burb = new char[s.length()+1];
for (int i = 1; i < burb.length; i++)
burb[i] = s.charAt(i-1);
int count = 0;
for (int i = 1; i < burb.length; i++) {
if (burb[i] == 'Y') {
for (int j = i; j < burb.length; j += i)
burb[j] = burb[j] == 'Y' ? 'N' : 'Y';
count++;
}
}
for (int i = 0; i < burb.length; i++) {
if (burb[i] == 'Y') {
System.out.println(-1);
return;
}
}
System.out.println(count);
}
}
'Algorithm > 백준+프로그래머스+SWEA+정올+구름' 카테고리의 다른 글
[Algorithm] SWEA 7964 부먹왕국의 차원 관문 (0) | 2021.08.27 |
---|---|
[Algorithm] SWEA 5356 의석이의 세로로 말해요 (0) | 2021.08.27 |
[Algorithm] SWEA 7236 저수지의 물의 총 깊이 구하기 (0) | 2021.08.26 |
[Algorithm] SWEA 2805 농작물 수확하기 (0) | 2021.08.26 |
[Algorithm] 백준 2999 비밀 이메일 (0) | 2021.08.25 |