728x90
반응형
백준 BAEKJOON 24389번 2의 보수 [PYTHON/파이썬]
<문제 출처>
https://www.acmicpc.net/problem/24389
24389번: 2의 보수
컴퓨터는 뺄셈을 처리할 때 내부적으로 2의 보수를 사용한다. 어떤 수의 2의 보수는 해당하는 숫자의 모든 비트를 반전시킨 뒤, 1을 더해 만들 수 있다. 이때, 32비트 기준으로 처음 표현했던 수와
www.acmicpc.net
<풀이>
좀 더 쉽고 간결한 코드로 짤 수 있을 것 같은데 내 머리로는 그게 안됐다.
정수를 입력 받아 2진수로 변환 후 앞에 부분을 '0'으로 채워 32비트를 만들었다.
그리고 그 값을 리스트로 변환 후 tmp_lst에 저장하여 모든 비트를 반전 시킨 뒤 1을 더하였다.
그리고 초기값과 변환값을 비교하여 다른 비트 수를 카운트해서 풀었다.
<코드>
binary = int(input())
length = 32 - len(bin(binary)[2:])
initial = length*'0' + bin(binary)[2:]
tmp_lst = list(length*'0' + bin(binary)[2:])
for i in range(len(tmp_lst)) :
if tmp_lst[i] == '0' :
tmp_lst[i] = '1'
else :
tmp_lst[i] = '0'
result = bin(int(''.join(tmp_lst), 2) + 1)[2:]
cnt = 0
for i in range(32) :
if initial[i] != result[i] :
cnt += 1
print(cnt)
728x90
반응형
'ALGORITHM > PYTHON' 카테고리의 다른 글
백준 BAEKJOON 15596번 정수 N개의 합 [PYTHON/파이썬] (0) | 2022.09.20 |
---|---|
백준 BAEKJOON 21312번 홀짝 칵테일 [PYTHON/파이썬] (0) | 2022.09.19 |
백준 BAEKJOON 25592번 바둑돌 게임 [PYTHON/파이썬] (0) | 2022.09.19 |
백준 BAEKJOON 25591번 푸앙이와 종윤이 [PYTHON/파이썬] (0) | 2022.09.19 |
백준 BAEKJOON 25576번 찾았다 악질 [PYTHON/파이썬] (0) | 2022.09.19 |