백준 문제 정리 21275번 - Python
21275 폰 호석만 문제
-
이번 문제는 진수 변환이 섞여 있어서, 각 문자와 숫자를 key와 value로 딕셔너리에 저장시켜 문제를 풀었다.
-
완성 코드 :
a,b = map(str,input().split()) dictt = dict() cnt = 0 #count result = [0, 0] for i in range(0, 10): # 1부터 dictt에 넣는다 dictt[str(i)] = i for i in range(26): # a부터 dictt에 넣는다 dictt[chr(97+i)] = i+10 maxa = max(list(a)) #a에서 가장 큰 문자 maxb = max(list(b)) #b에서 가장 큰 문자 def translatee(string, notation): # 진수 변환 tmp = 0 for i in range(len(string)): tmp += ((int(notation)**i) * dictt[string[-1-i]]) return tmp for i in range(dictt[maxa]+1, 37): for j in range(dictt[maxb]+1, 37): if i == j: continue if translatee(a, i) == translatee(b, j): if translatee(a, i) >= 2**63: continue result[0] = i result[1] = j cnt += 1 if cnt == 0: print("Impossible") elif cnt > 1: print("Multiple") elif cnt == 1: print(translatee(a, result[0]), result[0], result[1])
느낀 점 : 42서울에서 풀었던 문제(진법 변환과 테스트 케이스 통과)와 비슷한 점이 있어, 문제를 이해하는 데 시간은 좀 걸렸지만, 해결하였다.
Author And Source
이 문제에 관하여(백준 문제 정리 21275번 - Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dudejrtjdrp/백준-문제-정리-21275번-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)