[SWEA] #1240 단순 2진 암호코드
Link
Code
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
class Solution {
public static void main(String args[]) throws Exception {
HashMap<String, Integer> map = new HashMap<>();
map.put("0001101", 0);
map.put("0011001", 1);
map.put("0010011", 2);
map.put("0111101", 3);
map.put("0100011", 4);
map.put("0110001", 5);
map.put("0101111", 6);
map.put("0111011", 7);
map.put("0110111", 8);
map.put("0001011", 9);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), "");
int T = Integer.parseInt(st.nextToken());
for (int testCase = 1; testCase <= T; testCase++) {
st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
String[] arr = new String[N];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine(), " ");
arr[i] = st.nextToken();
}
int result = 0;
boolean flag = true;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M - 55; j++) {
String code = arr[i].substring(j, j + 56);
int check = 0;
for (int k = 0; k < 8; k++) {
String temp = code.substring(k * 7, k * 7 + 7);
if (!map.containsKey(temp)){
result = 0;
break;
}
else {
result += map.get(temp);
if (k % 2 == 0) {
check += 3 * map.get(temp);
}
else {
check += map.get(temp);
}
}
}
if (check > 0 && check % 10 == 0) {
System.out.printf("#%d %d\n", testCase, result);
flag = false;
}
if (!flag) {
break;
}
}
if (!flag) {
break;
}
}
if (flag) {
System.out.printf("#%d %d\n", testCase, 0);
}
}
}
}
Solution
Hashmap을 초기화할때 put을 반복해서 초기화한게 걸린다. 검색해서 나온 방법으로 할때 IntelliJ컴파일러에서는 가능했지만 SWEA 컴파일러에서는 오류가 발생하여 어쩔수없이 put으로 바꿨다. 다음에 다시 시도해봐야겠다.
일단 arr를 입력받은다음 한 row를 56글자 단위로 자르고 다시 7글자 단위로 잘라 그 코드가 hashmap에 존재하는지 안하는지 체크, 존재하지않으면 break, 아니면 복호화하여 result와 check에 각각 맞게 대입하고 check를 통해 암호코드를 검증, 맞으면 result를 출력하고 아니면 0을 출력하게된다.
세로 길이는 체크하지않아도 정답이 나와 작성하지 않았다.
Author And Source
이 문제에 관하여([SWEA] #1240 단순 2진 암호코드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kwonsc/SWEA-1240-단순-2진-암호코드저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)