-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain1239.java
More file actions
60 lines (54 loc) · 1.42 KB
/
Main1239.java
File metadata and controls
60 lines (54 loc) · 1.42 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
53
54
55
56
57
58
59
60
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
//JUNGOL 1239 비밀편지
// 2019-03-19
public class Main1239 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] key = {"000000","001111","010011","011100","100110","101001","110101","111010"};
// String A = "000000";
// String B = "001111";
// String C = "010011";
// String D = "011100";
// String E = "100110";
// String F = "101001";
// String G = "110101";
// String H = "111010";
int N = Integer.parseInt(br.readLine());
String msg = br.readLine();
ArrayList<Character> ans= new ArrayList<>();
int ans2=N*6+1;
for(int i=0;i<msg.length()-6+1;i+=6) {
String tmp = msg.substring(i, i+6);
boolean flag = false;
for(int j=0;j<key.length;j++) {
if(key[j].equals(tmp)) { // 아예 같은 경우
ans.add((char) ('A'+j));
flag = true;
break;
} else { //한문자만 다른 경우
int dif = 0;
for(int k=0;k<tmp.length();k++) {
if(tmp.charAt(k)!=key[j].charAt(k)) {
dif++;
}
if(dif>=2) break;
}
if(dif==1) {
ans.add((char) ('A'+j));
flag = true;
}
}
} // 암호를 해독한 경우
//해독하지 못한 경우
if(!flag) {
System.out.println(i/6+1);
return;
}
}
for(int i=0;i<ans.size();i++) {
System.out.print(ans.get(i));
}
} // end of main
}