forked from ehfmakan123/java_algo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSwitchOnOff.java
More file actions
52 lines (50 loc) Β· 2.07 KB
/
Copy pathSwitchOnOff.java
File metadata and controls
52 lines (50 loc) Β· 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Q.
// μ¬λ¬κ°μ μ ꡬλ₯Ό μνλ μνλ‘ λ°κΎΈλ €κ³ νλ€.
// μ²μ μ ꡬ μνλ 00000...00 μ΄λ€ ( 1 = On / 0 = Off)
// μ ꡬλ 1~ N λ²μΌλ‘ νκΈ°νλ€.
// iλ² μ ꡬμ μ€μμΉλ₯Ό ν€λ©΄ i * nμ ν΄λΉνλ λͺ¨λ μ ꡬμ μνκ° λ³νλ€.
// Ex) 00100100101 μνμ μ ꡬμμ 3λ² μ€μμΉλ₯Ό λ΄λ¦¬λ©΄ 3μ λ°°μμΈ μ ꡬμ μνκ° λͺ¨λ λ³νλ€
// 00100010101 -> 00000110001 ( 3λ² , 6λ² , 9λ² μ ꡬμ μνκ° λ³κ²½.)
// 첫μ€μ ν
μ€νΈ μΌμ΄μ€μ μ Tλ₯Ό μ
λ ₯λ°λλ€ ( 1~100)
// κ° ν
μ€νΈ μΌμ΄μ€μ 첫μ€μ μ
λ ₯λλ μ ꡬμ μ Nμ λ°λλ€ (1~10000)
// λ€μμ€μ λͺ©νλ‘ νλ μ ꡬμ μνλ₯Ό μ
λ ₯λ°λλ€
// μΆλ ₯μ #tc res(μ΅μ λ³κ²½ νμ)λ‘ λνλΈλ€.
public class Main {
public static void main(String[] args)throws Exception {
System.setIn(new FileInputStream("res/input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for(int tc = 1 ; tc <= T ; tc++) {
int res = 0;
sb.append("#").append(tc).append(" ");
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int[] arr = new int[N]; // μ
λ ₯λ°°μ΄
String str[] = br.readLine().split(" ");
for(int i = 0 ; i < N ; i++) { // λ°°μ΄μ μ λΆ μ
λ ₯λ°°μ΄μ λ£μμ.
arr[i] = str[i].charAt(0)-'0';
}
for(int i = 0 ; i <N ; i++) {
if(arr[i] == 1 && i == 0 ) { // μ²μ λ€μ΄μ¨ μκ° 1μΌλ
// System.out.println(Arrays.toString(arr));
for(int j = 0 ; j < N ; j++) {
arr[j] = arr[j]*(-1)+1;
}
// System.out.println(Arrays.toString(arr));
res++;
}else if(arr[i] == 1) { // κ·Έ λ€μλΆν° 1μΌλ
// System.out.println(Arrays.toString(arr));
for(int j = 1 ; j*(i+1) <=N ; j++) {
arr[(i+1)*j-1] = arr[(i+1)*j-1]*(-1) +1;
}
// System.out.println(Arrays.toString(arr));
res++;
}
}
sb.append(res).append("\n");
}
System.out.println(sb.toString());
br.close();
}
}