반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
2진수 <=> 10진수 변환 문제입니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
3. 코드
N = input()
num = 0
digit = 0
# 이진수 => 십진수 변환
for i in N[::-1]:
num += int(i)*(2**digit)
digit += 1
num *= 17 #17배
res = ''
# 십진수 => 이진수 변환
while num != 0:
res = str(num%2) + res
num //= 2
print(res)
원리 원칙 그대로 구현한 코드입니다.
2진수의 아랫자리부터 2의 지수승으로 곱해서 10진수를 구합니다. 이후 17배를 하고, 다시 2진수로 변환합니다.
N = int(input(), 2) #이진수로 입력받기
N *= 17 #17배
print(bin(N)[2:]) #2진수 출력
파이썬의 함수를 이용하면 더 쉽게 구현할 수 있습니다. 다른 언어와 달리, 라이브러리가 잘 되어있다는 게 느껴집니다...
int() 함수는 default가 10진수이지만, n진수를 정해줄 수 있습니다.
bin() 함수는 10진수를 2진수로 바꿔주며, 맨 앞에 이진수를 나타내는 0b만 제외하고 출력합니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 14623 감정이입 - Python (0) | 2022.02.25 |
---|---|
[구현] 백준 11549 Identifying tea - Python (0) | 2022.02.25 |
[구현] 백준 1371 가장 많은 글자 - Python (0) | 2022.02.25 |
[구현/수학] 백준 10214 Baseball - Python (0) | 2022.02.25 |
[구현] 백준 13752 히스토그램 - Python (0) | 2022.02.25 |
댓글