Baekjoon
[백준] 1550 16진수 (브론즈2) / int(input(), 16))
hellosonic
2023. 3. 22. 22:50
문제요약
나의 코드 및 설명
- 입력받은 문자열을 리스트에 저장한다.
- 리스트에 저장된 요소를 역순으로 하나씩 살펴보는 for문을 작성하였다.
리스트에 저장된 각각의 요소가 영문 A~F(아스키코드 65이상 70이하의 범위) 일 때와, 숫자 일 때, ans에 서로 다른 값이 저장되도록 코드를 작성하였다.
string = list(input())
ans = 0
for i in range(-1,-(len(string))-1,-1):
if 65<=ord(string[i])<=70:
ans += (ord(string[i]) - 55) * (16**abs(i+1))
else:
ans += int(string[i]) * (16**abs(i+1))
print(ans)
다른 코드 및 설명
- int(input(), 16)) : 입력 값에 16진수를 넣으면, 알아서 10진수로 변환해준다.
참고로 int(input(), 2)) 는 2진수를 넣으면, 10진수로 변환해준다.
print(int(input(), 16))
피드백
계속해서 IM등급 대비를 위한 문제만 풀다가 16진수? 뭐지? 하면서 풀어본 문제. int를 통해 10진수로 변환 할 수 있다는 것을 처음 알았다. 풀어보길 참 잘한 것 같다.