문제 확인

 

Softeer

연습문제를 담을 Set을 선택해주세요. 취소 확인

softeer.ai

  • 사이트를 방문하여 문제를 확인해주세요.

나의 풀이

전광판에 해당되는 전구를 미리 dict로 지정해서 풀었다.

이때, A -> B로 바뀔 때, A에만 있는 전구는 꺼야 하고 B에만 있는 전구는 켜면 된다. 

import sys

# 맨 위 idx를 0, 왼쪽을 1, 오른쪽을 2 아래를 3 ... 방식으로 숫자를 만들 경우 필요한 전구 미리 정의
num2lamp = {
    "0" : set([0, 1, 2, 4, 5, 6]),
    "1" : set([2, 5]),
    "2" : set([0, 2, 3, 4, 6]),
    "3" : set([0, 2, 3, 5, 6]),
    "4" : set([1, 2, 3, 5]),
    "5" : set([0, 1, 3, 5, 6]),
    "6" : set([0, 1, 3, 4, 5, 6]),
    "7" : set([0, 1, 2, 5]),
    "8" : set([0, 1, 2, 3, 4, 5, 6]),
    "9" : set([0, 1, 2, 3, 5, 6]),
    " " : set()
            }
# test case 수
test_case = int(input())
for _ in range(test_case):
    num_a, num_b = input().split()
    # zero padding
    num_a = num_a.rjust(5, " ")
    num_b = num_b.rjust(5, " ")
    count = 0
    for a, b in zip(num_a, num_b):
        # 같을 경우 개수 안 세도 됨
        if a == b:
            continue
        else:
            # a에만 있으면 꺼야함
            off = len(num2lamp[a] - num2lamp[b])
            # b에만 있으면 켜야함
            on = len(num2lamp[b] - num2lamp[a])
            count += int(on + off)
    # 결과 출력                
    print(count)

해설 풀이

전구 정보를 저장할 때, 켜진 전구만 저장하는 것이 아니고 꺼지고 켜진 전구 정보를 모두 저장했다.

import sys

light = {
    "0" : "1110111",
    "1" : "0010010",
    "2" : "1011101",
    "3" : "1011011",
    "4" : "0111010",
    "5" : "1101011",
    "6" : "1101111",
    "7" : "1110010",
    "8" : "1111111",
    "9" : "1111011",
    " " : "0000000"
}

t = int(input())
for k in range(t):
    a, b = input().split()
    a = (5 - len(a))*" " + a
    b = (5 - len(b))*" " + b

    total = 0
    for i in range(5):
        for j in range(7):
            total += (light[a[i]][j] != light[b[i]][j]) # True면 1, False면 0
    print(total)