SWEA 1240 (S/W 문제해결 응용) 1일차 - 단순 2진 암호코드

1 개요[ | ]

SWEA 1240 (S/W 문제해결 응용) 1일차 - 단순 2진 암호코드
SW Expert 아카데미
# 문제 풀이

틀:SWEA 난이도 3-6

2 C++[ | ]

3 Java[ | ]

import java.util.*;
public class Solution {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		for(int tc=1; tc<=T; tc++) {
			int N = sc.nextInt();
			//int M = sc.nextInt();
			sc.next();
			String row = null; 
			for(int i=0; i<N; i++) {
				String s = sc.next();
				if( row == null && s.contains("1") ) row = s;
			}
			int lastIndex = row.lastIndexOf('1');
			row = row.substring(lastIndex-55, lastIndex+1);
			int[] a = new int[8];
			for(int i=0; i<8; i++) {
				switch( row.substring(i*7, i*7+7) ) {
				case "0001101": a[i]=0; break;
				case "0011001": a[i]=1; break;
				case "0010011": a[i]=2; break;
				case "0111101": a[i]=3; break;
				case "0100011": a[i]=4; break;
				case "0110001": a[i]=5; break;
				case "0101111": a[i]=6; break;
				case "0111011": a[i]=7; break;
				case "0110111": a[i]=8; break;
				case "0001011": a[i]=9; break;
				default: a[i]=-9999;
				}
			}
			int result = 0;
			int check = (a[0]+a[2]+a[4]+a[6])*3+a[1]+a[3]+a[5]+a[7];
			if( check>9 && check%10==0 ) {
				result = a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7];
			}
			System.out.format("#%d %d\n", tc, result);
		}
		sc.close();
	}
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}