programming language/Algorithm
Softeer Level2 전광판 (python)
jellylucy
2023. 11. 3. 17:16
나의 풀이
전광판 숫자를 나타내는 거를 배열로 만들었다.
근데.. 공백을 생각 못해서 틀렸고 dict을 사용하지 않아서 애먹었다.
1. str에 공백 넣기
type(A) = 'str'인 A가 있을 때,
공백을 넣고 싶은 경우 : A = ' ' * n + A
원하는 공백 개수만큼 넣을 수 있다.
2. 전광판에 표시되는 경우의 수는 0부터 9 그리고 공백이다.
이거를 이차원배열이 아닌 key, value값을 가진 dict()으로 만들면 편하다.
그리고 dict 값 가져올 때 list처럼 [] 사용한다. ()아님
import sys
t = int(input())
testcase = []
for _ in range(t):
a, b = input().split()
a = ' ' * (5 - len(a)) + a
b = ' ' * (5 - len(b)) + b
testcase.append([a,b])
numbers = {
'0' : [1, 1, 1, 0, 1, 1, 1],
'1' : [0, 0, 1, 0, 0, 1, 0],
'2' : [0, 1, 1, 1, 1, 0, 1],
'3' : [0, 1, 1, 1, 0, 1, 1],
'4' : [1, 0, 1, 1, 0, 1, 0],
'5' : [1, 1, 0, 1, 0, 1, 1],
'6' : [1, 1, 0, 1, 1, 1, 1],
'7' : [1, 1, 1, 0, 0, 1, 0],
'8' : [1, 1, 1, 1, 1, 1, 1],
'9' : [1, 1, 1, 1, 0, 1, 1],
' ' : [0, 0, 0, 0, 0, 0 ,0]
}
answer = 0
# a, b를 바꿔야한다.
# 그 전에 같은 자리로 통일하기
# 비교 방법 같지 않으면 + 하기
def difference(a, b):
result = 0
for i in range(5):
for j in range(7):
# print(numbers[a[i]], "#")
# () 를 사용하는게 아니고 []으로 가져오는 것.
if (numbers[a[i]][j] != numbers[b[i]][j]):
result += 1
return result
for a,b in testcase:
print(difference(a,b))