문제 확인
- 사이트를 방문하여 문제를 확인해주세요.
나의 풀이
전광판에 해당되는 전구를 미리 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)