Algorithm/COS
[COS Pro 1급, Python] 6차 7번 : UP AND DOWN 게임
JMcunst
2022. 3. 1. 12:02
728x90
반응형
문제 유형
빈칸
난이도
easy
Note
1. 문제 자체는 쉬웠다.
2. 하지만, 함수 구현 문제로 나올 수 있으니, 해당 로직은 알 필요가 있다.
3. left 업데이트를 기존의 left와 num과 비교하여 num이 크면 업데이트를 하고, right 업데이트도 마찬가지로 기존 right과 num을 비교하여 num이 더 작을경우 right을 업데이트 한다.
Code
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
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, "입니다.")
※ 가끔 코드 중 print(~)가 있습니다. 정리 못한 점 죄송합니다.
※ 반례가 있으면 알려주시면 감사하겠습니다.
728x90
반응형