여름의 서재
[SWEA] 4366_정식이의 은행업무 본문
728x90
📕 문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWMeRLz6kC0DFAXd
💡 풀이법
1. 이진수를 돌면서 0을 1로, 1을 0으로 모두 바꿔보면서 원래 숫자가 될 수 있는 경우의 수를 originals 리스트에 담는다.
2. 그다음 삼진수를 돌며 0일땐 1,2로 1일땐 0,2로 2일땐 0,1로 바꿔보면서 바꾼 숫자가 originals에 있는지 확인하고 있으면 그 값을 return한다.
def bank(jinsu2, jinsu3):
originals = []
for i in range(1, len(jinsu2)):
original = list(jinsu2)
if jinsu2[i] == '0':
original[i] = '1'
else:
original[i] = '0'
originals.append(int(''.join(original), 2))
nums = ['0', '1', '2']
for i in range(len(jinsu3)):
for j in nums:
original = list(jinsu3)
if original[i] != j:
original[i] = j
original = int(''.join(original), 3)
if original in originals:
return original
T = int(input())
for tc in range(1, T+1):
jinsu2 = input()
jinsu3 = input()
num = bank(jinsu2, jinsu3)
print('#{} {}'.format(tc, num))
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 1861_정사각형 방 (0) | 2021.10.08 |
---|---|
[SWEA] 2819_격자판의 숫자 이어 붙이기 (0) | 2021.10.08 |
[SWEA] 1865_동철이의 일 분배 (백트랙킹 이용) (0) | 2021.10.07 |
[SWEA] 5209_최소 생산 비용 (백트랙킹 이용) (0) | 2021.10.07 |
[SWEA] 5208_전기버스2 (백트랙킹 이용) (0) | 2021.10.07 |
Comments