philaphillip

[Cos Pro 1급, Python] 6차 7번 : UP AND DOWN 게임 본문

알고리즘/파이썬

[Cos Pro 1급, Python] 6차 7번 : UP AND DOWN 게임

잡식블로그 2024. 3. 3. 16:09
반응형

문제

UP AND DOWN 게임은 다음과 같은 규칙에 따라 진행하는 게임입니다.
  • 먼저 출제자가 1 이상 ~ K 이하인 자연수 중 하나를 마음속으로 생각합니다.
  • 게임 참가자는 1 이상 ~ K 이하인 자연수 중 아무거나 하나를 말합니다.
  • 만약, 참가자가 말한 숫자가 출제자가 생각한 숫자보다 작다면 출제자는 "UP"이라고 말합니다.
  • 만약, 참가자가 말한 숫자가 출제자가 생각한 숫자보다 크다면 출제자는 "DOWN"이라고 말합니다.
  • 참가자는 출제자가 말하는 "UP", "DOWN" 힌트를 잘 활용해서 출제자가 처음에 생각한 숫자를 맞추면 됩니다.
출제자가 처음에 생각할 수 있는 자연수 범위 K, 게임 참가자가 말한 숫자가 순서대로 담긴 배열 numbers, numbers의 길이 numbers_len, 게임 출제자가 참가자가 말한 각 숫자에 대해 답한 내용이 순서대로 담긴 배열 up_down, up_down의 길이 up_down_len이 매개변수로 주어집니다. 배열에 주어진 순서대로 게임이 진행됐다고 했을 때, 현재 정답이 될 수 있는 숫자는 몇 개인지 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

코드

def solution(K, numbers, up_down):
	left = 1
	right = K
	for num, word in zip(numbers, up_down):
		if word == "UP":
			left = max(left, num)
		elif word == "DOWN":
			right = min(right, num)
		elif word == "RIGHT":
			return 1
	return right - left - 1
    
    
    
    
    
    
    
    
K1 = 10
numbers1 = [4, 9, 6]
up_down1 = ["UP", "DOWN", "UP"]
ret1 = solution(K1, numbers1, up_down1)

print("solution 함수의 반환 값은", ret1, "입니다.")

K2 = 10
numbers2 = [2, 1, 6]
up_down2 = ["UP", "UP", "DOWN"]
ret2 = solution(K2, numbers2, up_down2)

print("solution 함수의 반환 값은", ret2, "입니다.")

K3 = 100
numbers3 = [97, 98]
up_down3 = ["UP", "RIGHT"]
ret3 = solution(K3, numbers3, up_down3)

print("solution 함수의 반환 값은", ret3, "입니다.")
반응형
Comments