스무고개 : 질문을 통해서 답을 맞추는 놀이
1000이하의 자연수 을 아무거나 하나 생각할테니, 스무고개 놀이를 시작해보자.
여기서 아무거나는 랜덤의 숫자를 얘기한다.
문제의 정의
랜덤의 숫자 을 맞춰보자!
문제의 분석
randint(a, b)
함수를 사용한다. import random
answer = random.randint(1, 1000) # 1이상이고 1000이하인 난수
start = 1
end = 1000
mid = (start + end) // 2 # 중간 값
스무고개 답 구하기
import random
def guess(answer):
start = 1
end = 1000
while start < end: # 시작값과 끝값의 범위를 좁혀나가 둘의 값이 같아지거나 start 값이 커지면 반복을 종료한다.
mid = (start + end) // 2 # 중간값을 구한다.
if mid < answer: # 중간값과 난수를 비교해서 범위를 좁혀나간다.
start = mid + 1 # 중간값보다 난수값이 크면 start값을 좁히고
else:
end = mid # 중간값보다 난수값이 작으면 end값을 좁힌다. 이 과정을 계속 반복
return start
answer = random.randint(1, 1000)
print(answer)
print(guess(answer))
->
538
538