백준 수학 알고리즘 : 2475 진법 변환

코린이서현이·2024년 1월 21일
0

🛎️ 2475번

문제 설명

n진법의 숫자를 다시 10진수로 바꾸는 문제였다.

정답코드

from string import ascii_uppercase

x1,x2 = input().split(" ")
x2 = int(x2)
x_list = list(x1)

list_36 = list(str(r) for r in range(10)) + list(ascii_uppercase)
y = 0

for i in range(len(x_list)):
    y += list_36.index(x_list[i]) * (x2**(len(x_list)-1 - i))

print(y)

틀렸던 이유

9와 '9'는 다르다!

list_36의 숫자 부분을 단순 range()를 이용해서 숫자로 넣었다.
그 후 인덱스 값을 이용해 '9'를 찾으니까 없는 리스트로 나왔다.
그래서 다시 문자형으로 바꿔주었다.

생각을 대충하지말자!

직관을 너무 믿지 말고;; ㅎ 잘 따져보자.
그냥 단순히 인덱스 값을 활용해서 자릿수를 계산해야지~ 했는데 알고보니까 리스트는 앞에서부터 0,1,2이고 진법 계산할때는 2,1,0인것이었다;;

잘하자!!^^

profile
24년도까지 프로젝트 두개를 마치고 25년에는 개발 팀장을 할 수 있는 실력이 되자!

0개의 댓글