본문 바로가기
Algorithm

[구현/수학] 백준 4892 숫자 맞추기 게임 - 파이썬(Python)

by jangThang 2023. 2. 9.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    4892번: 숫자 맞추기 게임

    입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n0으로 이루어져 있다. (0 < n0 < 1,000,000) 입력의 마지막 줄에는 0이 하나 주어진다.

    www.acmicpc.net

     

     

    2. 문제 풀이

    1) 친구에게 n1 = 3*n0 계산을 하라고 한 뒤, n1이 짝수인지 홀수인지를 말해달라고 한다.
    2) n1이 짝수라면, n2 = n1/2를, 홀수라면 n2 = (n1+1)/2를 계산해달라고 한다.
    3) n3 = 3*n2의 계산을 부탁한다.
    4) 친구에게 n4 = n3/9를 계산한 뒤, 그 값을 말해달라고 한다. (n4는 나눗셈의 몫이다)
    5) n1이 짝수였다면, n0 = 2*n4로, 홀수였다면, n0 = 2*n4+1로 처음 친구가 생각한 숫자를 맞출 수 있다.

     위 순서대로 그대로 구현합니다.

     

     

    3. 코드

    import sys
    input = sys.stdin.readline
    
    i = 1
    while True:
        n0 = int(input())
        if n0 == 0:
            break
        n1 = 3*n0
        n2 = (n1+1)//2 if n1%2 else n1//2
        n3 = 3*n2
        n4 = n3//9
        if n0 == 2*n4:
            print(f"{i}. even {n4}")
        else:
            print(f"{i}. odd {n4}")
        i += 1

     

     

    star가 되고나서 Tistory

    반응형

    댓글