[백준/파이썬] 15917번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 15917번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
여러분은 Q개의 쿼리를 수행해야 합니다. 수행해야 하는 쿼리는 다음과 같습니다.
어떤 수 a를 2의 거듭제곱 꼴로 나타낼 수 있는가?
입력 요약
첫 줄에 Q가 주어집니다. (1 ≤ Q ≤ 106)
두 번째 줄부터 Q+1번째 줄까지 a가 주어집니다. a는 1이상 231-1이하 자연수입니다.
출력 요약
각 쿼리마다, 답이 Yes이면 1을, 그렇지 않으면 0을 출력합니다.
코드
import sys;read=sys.stdin.readline
r=[]
for T in range(int(read())):
q=int(read())
r.append('1'if q&-q==q else'0')
print('\n'.join(r))
설명
핵심은 구현 관점에서 여러분은 Q개의 쿼리를 수행해야 합니다. 수행해야 하는 쿼리는 다음과 같습니다.
어떤 수 a를 2의 거듭제곱 꼴로 나타낼 수 있는가?를 만족하도록 로직을 구성하는 것입니다.
코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.
경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.
댓글남기기