https://www.softeer.ai/practice/info.do?idx=1&eid=624
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
www.softeer.ai
처음 생각한건 (ON + OFF)횟수 테이블을 만들어서 A 에서 B로 가는 서로의 숫자만 안다면, 점등 되어있는 불빛의 차로 어떻게 할 수 있지 않을까? 생각했었다.
해당 테이블을 모두 채우진 않았지만, 2차원배열로 만들어서 해볼만한 것 같다고 생각 했는데 너무 오래걸려서 중도 포기 했다..
해답은 내 아이디어랑 비슷하게 딕셔너리 테이블을 만들어서 접근하는 방식 이었다.
내 방법보다 더 세련된 방식으로 아래와 같이 점등되는 위치를 인덱스로 잡아서 정의하는 것 이었다.
생각을 해봐야 하는 부분은
- (자릿수가 알맞지 않는경우) 패딩 설정해주기
- 설정해준 패딩 숫자값 올려주기
- 지정된 서로 다른 값을 비교해서 binary 값 따라서 카운터 올려주기
<내 코드>
import sys
input = sys.stdin.readline
counter = {
'0':'1110111',
'1':'0100100',
'2':'1101011',
'3':'1101110',
'4':'0111100',
'5':'1011110',
'6':'1011111',
'7':'1110100',
'8':'1111111',
'9':'1111110',
}
T = int(input())
for _ in range(T):
cnt = 0
A, B = (input().split())
A = list(A.rjust(5, '#'))
B = list(B.rjust(5, '#'))
for i in range(5):
if A[i] == B[i]:
continue
elif A[i] == '#':
cnt += counter[B[i]].count('1')
elif B[i] == '#':
cnt += counter[A[i]].count('1')
else:
Astr = counter[A[i]]
Bstr = counter[B[i]]
for j in range(7):
if Astr[j] != Bstr[j]:
cnt += 1
print(cnt)
'Algorithm > Softeer' 카테고리의 다른 글
[Softeer / Level2] GBC (1) | 2023.10.08 |
---|---|
[Softeer / Level2] 바이러스 (0) | 2023.10.07 |
[Softeer / Level2] [21년 재직자 대회 예선]비밀 메뉴 (1) | 2023.10.05 |
[Softeer / Level2] 지도 자동 구축 (1) | 2023.10.04 |
[Softeer / Level2] 장애물 인식 프로그램 (1) | 2023.10.03 |