Python(알고리즘,문제풀이)/BOJ (Bronze IV)

백준 27890번 / 특별히 작은 분수 - 파이썬(XOR 연산)

박혀노 2023. 10. 24. 22:27
728x90

📚문제

출처 : 백준 27890번 (https://www.acmicpc.net/problem/27890)

 

📝풀이

# 27890 특별한 작은 분수
x, N = map(int,input().split())
for i in range(N):
    if x % 2 ==0:
        x = int(x/2)^6
    else:
        x = (2*x)^6
print(x)

코드는 그렇게 어렵지 않은데

 

⊕기호가 비트 XOR 연산하는 기호라는 것을 알고 있으면 된다

(밑에 노트에 나옴)

파이썬에서는 비트 XOR 연산 기호가 (^)이다

 

비트 XOR연산에 대해 간단하게 설명하면

" 2개의 피연산값비트(2진수)값이 같으면 0을 출력, 다르면 1을 출력 "

100111001011010100111010 XOR 010110100001101111011000 
= 110001101010111011100010
# 출처 : https://ko.khanacademy.org/computing/computer-science/cryptography/ciphers/a/xor-bitwise-operation

파이썬에서 ^ 기호를 사용해주면 아래와 같은 과정을 거쳐 값을 반환해준다

1) 피연산값 2가지를 십진수 -> 이진수 변환후에 

2) XOR연산하여 나온 이진수 값을

3) 다시 십진수로 변환

 

728x90