Algorithm Problem/Python
[python] SWEA - 4366. 정식이의 은행업무
deo2kim
2022. 3. 25. 23:12
반응형
🤔문제 해결
- 주어진 진수를 한자리 씩 다른것으로 바꿔주기
- 1101(2진수) => 0101, 1001, 1111, 1100
- 1221(3진수) => 0221, 2221, 1021, 1121, 1201, 1211, 1220, 1222
- 각 수에 대해서 10진수로 바꾸고 리스트(or 딕셔너리)에 넣기
- 2진수 먼저해서 다 넣어두고
- 3진수 변환할 때마다 이미 있는지 체크해서
- 있으면 break
- 답 출력
💻소스 코드
def convert_decimal(standard, num):
converted_number = 0
for i in range(len(num)):
converted_number += int(num[i]) * (standard ** (len(num) - i - 1))
return converted_number
T = int(input())
for test_case in range(1, T + 1):
answer = 0
binary_number = input()
trinary_number = input()
guess_number_list = {}
for i in range(len(binary_number)):
for j in range(2):
if binary_number[i] == str(j):
continue
wrong_number = str(j)
changed_number = binary_number[:i] + wrong_number + binary_number[i + 1:]
guess_number = convert_decimal(2, changed_number)
guess_number_list[guess_number] = 1
for i in range(len(trinary_number)):
for j in range(3):
if trinary_number[i] == str(j):
continue
wrong_number = str(j)
changed_number = trinary_number[:i] + wrong_number + trinary_number[i + 1:]
guess_number = convert_decimal(3, changed_number)
if guess_number_list.get(guess_number):
answer = guess_number
break
print(f'#{test_case} {answer}')
📕문제 확인
출처: SW Expert Academy
반응형