Notice
Recent Posts
Recent Comments
Archives
04-29 20:14
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
관리 메뉴

줴림이 공부하줴림

5186. [파이썬 S/W 문제해결 구현] 1일차 - 이진수2 본문

Study/SWEA

5186. [파이썬 S/W 문제해결 구현] 1일차 - 이진수2

줴림 2025. 4. 18. 19:04

이번에도 이진수 관련 문제지만, 이번에는 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}")

단순해보이지만 실제로 아이디어를 떠올리는게 무지 힘들었다. 난 빙빙 돌아가는 아이디어를 떠올리고 있었는데, 엄청 쉽고 단순한 방법이 눈앞에 있기도 하고... 이건 쉬운 문제라도 많이 풀어보는 연습을 해야 습관이 들려나?