def solution(bin1, bin2):
    answer = ''
    
    answer = int(bin1, 2) + int(bin2, 2)
    
    return bin(answer)[2:]  # bin() <- 이걸 쓰면 앞에 "0b"가 생겨서 슬라이싱 했음

 

🤔 문제 풀이

  • 파이썬 자체에서 bin() 함수와 Int() 함수로 문자열화 된 진수들을 더할 수 있어요
  • answer = int(bin1, 2) + int(bin2, 2)
    • int(문자열, n진수)의 형태로 문자열 수만큼 더해주시면 덧셈 코드는 완성 돼요
  •  return bin(answer)[2:]
    • 대신 출력할 때는 bin()을 쓰서야 하는데
      • 이 bin() 함수는 자동으로 앞에 "0b"가 생성되기 때문에 슬라이싱([2:])으로 원하는 값을 반환해 주시면 문제 해결!

bin() 함수와 int(문자열, n진수)로 문자열 진수 더하기 

함수 설명
bin(x) x를 이진수로 변환한 문자열을 리턴함
a=123

print(bin(a))
결괏값 : 0b1111011

 

함수 설명
int(문자열, n진수) 2진수 문자열을 더할 때 씀
bin1 = "10"
bin2 = "11"

addition = int(bin1,2)+int(bin2, 2)    # 5
type(addition)     # <class 'int'>

bin(addition)   # '0b101'
bin(addition)[2:]   # '101'
type(bin(addition))   # <class 'str'>

+ Recent posts