관리 메뉴

솜씨좋은장씨

[BaekJoon] 11179번 : 2진수 뒤집기 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 11179번 : 2진수 뒤집기 (Python)

솜씨좋은장씨 2021. 10. 13. 09:24
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 2진수 뒤집기 입니다.

 

11179번: 2진수 뒤집기

희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은.

www.acmicpc.net

👨🏻‍💻 문제 풀이

숫자를 하나 입력 받으면 이를 2진수로 바꾸고 

그 값을 뒤집은 값을 다시 10진수로 바꾸어 출력하는 문제입니다.

Python의 10진수 -> 2진수 변환 함수인 bin과 2진수 -> 10진수 가 가능한 int를 활용하면 쉽게 문제를 풀 수 있습니다.

number = int(input())

먼저 숫자를 하나 입력 받습니다.

binary_num = bin(number)[2:]

입력 받은 숫자를 bin을 활용하여 2진수로 변환해줍니다.

bin(10)
-> '0b1010'

bin을 활용하여 2진수로 바꾸어주면 앞에 0b값이 붙어서 나오게 됩니다.

이를 제거하기 위해 [2:] 를 활용하여 앞의 2글자를 제외합니다.

flip_binary = binary_num[::-1]

2진수 값을 뒤집는데에는 [::-1] 을 활용하여 거꾸로 뒤집어 줍니다.

int(flip_binary, 2)

마지막으로 2진수를 10진수로 다시 바꾸어주는데에는 int를 활용하는데 

이때 2진수 값과 몇진수의 수인지 같이 넣어주면 10진수로 바뀝니다.

 

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

def flip_binary(number):
    binary_num = bin(number)[2:]
    flip_binary = binary_num[::-1]
    
    return int(flip_binary, 2)

if __name__ == "__main__":
    number = int(input())
    print(flip_binary(number))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments