줴림이 공부하줴림
5186. [파이썬 S/W 문제해결 구현] 1일차 - 이진수2 본문
이번에도 이진수 관련 문제지만, 이번에는 0보다 크고 1미만인 십진수 N을 이진수로 바꾸는 문제이다.
- 0.625 => 0.101
N을 소수점 아래 12자리 이내인 이진수로 표시할 수 있으면 0.을 제외한 나머지 숫자를 출력하고, 13자리 이상이 필요한 overflow를 출력하도록 하는 것이 이번 목표이다.
T = int(input())
for test_case in range(1, T+1):
N = float(input())
count = 0
answer = ''
while N != 0:
N *= 2
bit = int(N) # 정수 부분
answer += str(bit)
N -= bit # 소수 부분만 남기기
count += 1
if count > 12:
answer = 'overflow'
break
print(f"#{test_case} {answer}")
단순해보이지만 실제로 아이디어를 떠올리는게 무지 힘들었다. 난 빙빙 돌아가는 아이디어를 떠올리고 있었는데, 엄청 쉽고 단순한 방법이 눈앞에 있기도 하고... 이건 쉬운 문제라도 많이 풀어보는 연습을 해야 습관이 들려나?
'Study > SWEA' 카테고리의 다른 글
5189. [파이썬 S/W 문제해결 구현] 2일차 - 전자카트 (0) | 2025.04.21 |
---|---|
5188. [파이썬 S/W 문제해결 구현] 2일차 - 최소합 (0) | 2025.04.21 |
5185. [파이썬 S/W 문제해결 구현] 1일차 - 이진수 (0) | 2025.04.18 |
[SWEA] [파이썬 SW 문제해결 기초] 6. Tree (0) | 2025.04.07 |
[SWEA] [파이썬 SW 문제해결 기초] 5. Queue (0) | 2025.04.07 |