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

shin·2022년 11월 19일
0

CodingTest 문제 풀이

목록 보기
57/79

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

풀이

T = int(input())
for t in range(1, T + 1):
    N, M = map(int, input().split())
    arr = [input() for _ in range(N)]
    
    num = {'0001101':0, '0011001':1, '0010011':2, '0111101':3, '0100011':4, '0110001':5, '0101111':6, '0111011':7, '0110111':8, '0001011':9}
    front = 0
    end = 0
    for i in range(N):
        if format(int(arr[i]), 'b') != '0':
            for j in range(M - 1, -1, -1):
                if arr[i][j] != '0':
                    end = j
                    front = i
                    break
                    
    answer = arr[front][end - 55:end + 1]
    index = 1
    even = 0
    odd = 0
    for i in range(0, 56, 7):
        if index % 2 == 0:
            even += num["".join(answer[i:i+7])]
        else:
            odd += num["".join(answer[i:i+7])]
        index += 1
        
    if (odd * 3 + even) % 10 == 0:
        print(f"#{t} {odd + even}")
    else:
        print(f"#{t}", 0)
profile
Backend development

0개의 댓글