ALGORITHM/PYTHON

백준 BAEKJOON 32685번 4-LSB [PYTHON/파이썬]

칼코 2024. 12. 3. 16:50
반응형

 

 

 

 

 

 

백준 BAEKJOON 32685번 4-LSB [PYTHON/파이썬]


<문제 출처> (BRONZE Ⅱ)

https://www.acmicpc.net/problem/32685

 

 

 

 

 

 

 

<풀이>

입력으로 들어오는 10진수를 format 함수를 사용하여 2진수로 변환한 뒤 아래의 함수에 넣어줬다.

def four_LSB(x):
    if len(x) < 4:
        return "0" * (4 - len(x)) + x
    else:
        return x[-4:]
        

n1 = four_LSB(format(int(input()), "b"))
n2 = four_LSB(format(int(input()), "b"))
n3 = four_LSB(format(int(input()), "b"))

 

함수를 통해 4-LSB의 은폐 데이터로 추출한 값으로 나온다. (최하위 4비트의 값)

n1, n2, n3를 주어진 순서대로 이어준 뒤 다시 10진수로 변환하였다.

비밀번호는 4자리이기 때문에 4자리보다 작으면 그만큼 "0"을 앞에 추가해 주었다.

 

 

 

 

 

 

 

 

<코드>

def four_LSB(x):
    if len(x) < 4:
        return "0" * (4 - len(x)) + x
    else:
        return x[-4:]


n1 = four_LSB(format(int(input()), "b"))
n2 = four_LSB(format(int(input()), "b"))
n3 = four_LSB(format(int(input()), "b"))

password = str(int("0b" + n1 + n2 + n3, 2))  # 2진수 형태의 문자열로 변환

if len(password) < 4:
    print("0" * (4 - len(password)) + password)
else:
    print(password)

 

 

 

 

 

 

 

반응형