[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