728x90
📌 문제
https://swexpertacademy.com/main/main.do
📌 문제 접근 방법
- 2진수가 0과 1의 경우의 수밖에 없으므로 2진수를 하나씩 변환시켜서 그 수를 3진수로 변환시켰을 때 틀린 자리의 개수를 확인한다.
- 2진수의 맨 처음에는 0이 올 수 없으므로 2번째 자리부터 변환한다.
📌 코드
import sys
sys.stdin = open('input.txt')
def bin_to_3(bin_list):
# 10진수 변환
dec_num = 0
for i in range(len(bin_list)):
dec_num += int(bin_list[i]) * 2**(len(bin_list)-1-i)
answer = dec_num
# 3진수 변환
num3 = []
while dec_num:
num3.append(dec_num%3)
dec_num //= 3
num3 = num3[::-1]
# 3진수와 비교
if len(num3) != len(cash_3):
return 0
cnt = 0
for j in range(len(num3)):
if num3[j] != int(cash_3[j]):
cnt += 1
if cnt > 1:
return 0
if cnt == 1:
return answer
return 0
T = int(input())
for t in range(1, T+1):
cash_2 = list(input())
cash_3 = list(input())
for i in range(1, len(cash_2)):
if cash_2[i] == '0':
cash_2[i] = 1
temp = bin_to_3(cash_2)
cash_2[i] = 0
else:
cash_2[i] = 0
temp = bin_to_3(cash_2)
cash_2[i] = 1
if temp:
break
print('#{} {}'.format(t, temp))
728x90
'ALGORITHM > SW Expert Academy' 카테고리의 다른 글
[SWEA/Python] 2105. [모의 SW 역량테스트] 디저트 카페 (0) | 2021.10.12 |
---|---|
[SWEA/Python] 2806. N-Queen (0) | 2021.10.08 |
[SWEA/Python] 1865. 동철이의 일 분배 (0) | 2021.10.07 |
[SWEA/Python] 5209. 최소 생산 비용 (0) | 2021.10.07 |
[SWEA/Python] 5208. 전기버스2 (0) | 2021.10.07 |
댓글