풀이 목록으로 돌아가기

BOJ 5893 - 17배

2025-07-15
BOJ
브론즈 III
python
원본 문제 보기
수학
구현
임의 정밀도 / 큰 수 연산

문제

BOJ 5893 - 17배

2진수로 표현된 수가 입력으로 주어진다. 이 수에 17을 곱한 결과를 2진수로 출력하는 문제다. 입력 수는 최대 1000비트로 일반 정수형을 초과할 수 있다.

입력

  • 한 줄: 2진수 문자열 (최대 1000비트)

출력

입력 값의 17배를 2진수로 출력한다.

예제

입력출력
110001

풀이

파이썬의 임의 정밀도 정수와 진수 변환 내장 함수를 활용하여 한 줄로 해결한다.

  1. int(n, 2)로 2진수 문자열을 10진 정수로 변환한다.
  2. 변환된 정수에 17을 곱한다.
  3. bin() 함수로 다시 2진수 문자열로 변환하고, 앞의 "0b" 접두사를 슬라이싱으로 제거한다.

핵심 아이디어: 파이썬은 임의 정밀도 정수를 기본 지원하므로, 1000비트 수도 오버플로 없이 처리 가능하다. int(s, 2) → 곱셈 → bin()[2:] 의 세 단계로 완성된다.

코드

n = int(input(), 2)
n *= 17
print(bin(n)[2:])

복잡도

  • 시간: O(N)
  • 공간: O(N)