[Softeer] 전광판 (level 2)
사용 언어: 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()
- 참고
💛 개인 공부 기록용 블로그입니다. 👻