500error
[Cos Pro 1급, Python] 6차 7번 : UP AND DOWN 게임 본문
반응형
문제
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, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[Cos Pro 1급, Python] 6차 9번 : 스택으로 큐 만들기 (0) | 2024.03.03 |
---|---|
[Cos Pro 1급, Python] 6차 8번 : 지그재그 수열 (0) | 2024.03.03 |
[Cos Pro 1급, Python] 6차 6번 : 만났을때 최대인 경우 (0) | 2024.03.03 |
[Cos Pro 1급, Python] 6차 5번 : 코인을 많이 획득하세요 (0) | 2024.03.03 |
[Cos Pro 1급, Python] 6차 4번 : 카드 섞기 (0) | 2024.03.03 |
Comments