1 분 소요

사용 언어: Python3

문제

전광판

풀이

내 풀이

import sys

dic = {
    '-': [0,0,0,0,0,0,0], # 맨앞 0
    0: [1,1,0,1,1,1,1], # 중간 0
    1: [0,0,0,1,0,0,1],
    2: [1,0,1,1,1,1,0],
    3: [1,0,1,1,0,1,1],
    4: [0,1,1,1,0,0,1],
    5: [1,1,1,0,0,1,1],
    6: [1,1,1,0,1,1,1],
    7: [1,1,0,1,0,0,1],
    8: [1,1,1,1,1,1,1],
    9: [1,1,1,1,0,1,1]
}

def reverse(a): # a: string (ex. '123')
    a = a[::-1] # 거꾸로 뒤집기 # 321
    lst_A = ['-'] * 5 # 맨 앞 0을 구분하기 위해 - 으로!
    for i in range(4, 5-len(a)-1, -1):
        lst_A[i] = int(a[4-i]) # 4,3,2 -> 0(4-4),1(4-3),2(4-2)
    return lst_A # [-,-,1,2,3]

def compareOneDigit(a, b):
    cnt = 0
    for i in range(7):
        if dic[a][i] != dic[b][i]:
            cnt += 1
    return cnt

def process():
    a, b = input().split()
    lst_A = reverse(a)
    lst_B = reverse(b)

    cnt = 0
    for i in range(5):
        cnt += compareOneDigit(lst_A[i], lst_B[i])
    print(cnt)

TC = int(input())
for _ in range(TC):
    process()
  • 정답!

다른 풀이

import sys

dic = {
    '-': '0000000', # 맨앞 0
    '0': '1101111', # 중간 0
    '1': '0001001',
    '2': '1011110',
    '3': '1011011',
    '4': '0111001',
    '5': '1110011',
    '6': '1110111',
    '7': '1101001',
    '8': '1111111',
    '9': '1111011'
}

# 맨 앞 공백에 -를 채우는 함수
def fill(a): # a: string type (ex. '123')
    return (5-len(a)) * '-' + a # 🌟 간단히 표현 가능 # '--123'

def compareOneDigit(a, b): # a, b는 한 자리수 digit (string type)
    cnt = 0
    for i in range(7):
        if dic[a][i] != dic[b][i]:
            cnt += 1
    return cnt

def process():
    a, b = input().split() # a, b는 문자열
    a, b = fill(a), fill(b) # a, b는 문자열

    cnt = 0
    for i in range(5):
        cnt += compareOneDigit(a[i], b[i])
    print(cnt)

TC = int(input())
for _ in range(TC):
    process()


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기