본문 바로가기
problem solving

1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드

by ormgm 2019. 9. 28.

import copy

t = int(input())

code = ['0001101','0011001','0010011','0111101','0100011','0110001','0101111','0111011','0110111','0001011']

for q in range(t):

    n,m = map(int,input().split())

    arr = []

    ans = ''

 

    for i in range(n): # 배열 입력

        arr.append(input())

 

 

    for i in range(0,n): # 1 찾기

        if arr[i].find('1') >= 0:

            found_arr = copy.deepcopy(arr[i])

            break;

 

    for i in range(m-1,0,-1): #뒤에서 부터 1찾기

        if found_arr[i] == '1':

            start = i - 55 #암호문 시작과 끝

            end = i

            break;

 

    for i in range(start,end+1,+7):

        for j in range(0,10):

            if found_arr[i:i+7] == code[j]:

                ans = ans + str(j)

                break;

 

    hap = ((int(ans[0])+int(ans[2])+int(ans[4])+int(ans[6])) * 3) + (int(ans[1]) + int(ans[3]) + int(ans[5]))+int(ans[7])

    zz = int(ans[0])+int(ans[2])+int(ans[4])+int(ans[6])+int(ans[1])+int(ans[3])+int(ans[5])+int(ans[7])

    print(hap,zz)

    if hap % 10 == 0:

        print('#%d'%(q+1),zz)

    else: print('#%d'%(q+1),0)

댓글