[Python] 코딩 도장 - UP&Down 숫자맞추기 게임

Updated:

코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.

코딩 도장에서 여러 문제를 확인할 수 있습니다.

난이도 순으로 차근차근 풀어보려 합니다.


[문제: UP&Down 숫자맞추기 게임] - Lv.1

컴퓨터가 1~100 숫자(정수 범위) 중 하나를 랜덤으로 정합니다. (이를 알려주지 않습니다.)

사용자는 이 숫자를 맞추어야 합니다.

입력한 숫자보다 정답이 크면 → “UP” 출력,

입력한 숫자보다 정답이 작으면 → “DOWN” 출력.

정답을 맞추면 → “정답”을 출력하고, 지금까지 숫자를 입력한 횟수를 알려줍니다.

(예시)
컴퓨터가 1~100 중 랜덤 숫자 하나를 정합니다.
이 숫자를 맞춰주세요.
1~100 숫자 입력:50
DOWN
1~100 숫자 입력:25
UP
1~100 숫자 입력:38
DOWN
1~100 숫자 입력:32
UP
1~100 숫자 입력:35
UP
1~100 숫자 입력:37
DOWN
1~100 숫자 입력:36
정답입니다! 7회 만에 맞췄어요.

출처: https://codingdojang.com/scode/711?answer_mode=hide


[풀이]

import random

num = random.randint(1,100)
i = 0
x = 0

while x != num:
    i += 1
    x = int(input("1~100 숫자 입력: "))
    
    if x < num:
        print("UP")
    elif x > num:
        print("DOWN")
    elif x == num:
        print(f"정답입니다! {i}회 만에 맞췄어요.")
1~100 숫자 입력: 50
UP
1~100 숫자 입력: 75
DOWN
1~100 숫자 입력: 60
DOWN
1~100 숫자 입력: 55
DOWN
1~100 숫자 입력: 53
DOWN
1~100 숫자 입력: 52
DOWN
1~100 숫자 입력: 51
정답입니다! 7회 만에 맞췄어요.

while과 if문으로 간단하게 만들 수 있는 문제인 듯 하다.


[추천 풀이]

import random

a = random.randint(1,100)
n = 0
print("컴퓨터의 렘덤 숫자를 알아 맞혀보세요.(1~100 사이)") #print("") 수정
q = 0 #추가
while a != q:
    q = int(input("1~100 숫자 입력:")) #int( input("") ) 수정
    if q < a:
        print("up")
    elif a < q:
        print("down")
    n += 1
print("정답입니다.")
print("걸린 순서: "+str(n)) # n -> str(n) 수정
컴퓨터의 렘덤 숫자를 알아 맞혀보세요.(1~100 사이)
1~100 숫자 입력:50
up
1~100 숫자 입력:75
down
1~100 숫자 입력:60
up
1~100 숫자 입력:68
down
1~100 숫자 입력:64
정답입니다.
걸린 순서: 5

딱히 추천 수가 많은 풀이가 없고 풀이 과정은 직관적으로 거의 동일하다.

Leave a comment