문제 - 숫자카드 게임
-
숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한장을 뽑은 게임이다.
-
단 게임의 룰이 있는데 그 룰은 아래와 같다.
- 숫자가 쓰인 카드들이 N x M 형태로 놓여있다. 이때 N은 행의 수를 의미하며, M은 열의 개수를 의미한다.
- 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다.
- 그 다음에 선택된 행에 포함된 카드 들 중에 가장 숫자가 낮은 카드를 뽑아야 한다.
- 따라서 처음에 카드를 골라낼 행을 선택할 때 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다.
제한 사항
- 각 행에서 가장 작은 숫자의 카드를 뽑을 수 있다.
- 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다.
- 입력 조건 : 1 <= N,M <= 100
- 둘째 줄부터 N
아이디어
구현 문제
- 각 행을 반복하면서 열에 있는 숫자중에 가장 작은 숫자를 뽑는다.
- 모든 행을 순회하면서 뽑은 숫자중에서 가장 큰 숫자를 뽑는다.
코드
from typing import List
def solution(*, matrix: List[List[int]]):
min_list = []
for m in matrix:
min_list.append(min(m))
return max(min_list)
def solution2():
n, m = map(int, input().split())
result = 0
for i in range(n):
data = list(map(int, input().split()))
min_value = min(data)
result = max(result, min_value)
print(result)
def solution3():
n, m = map(int, input().split())
result = 0
for i in range(n):
data = list(map(int, input().split()))
min_value = float('-inf')
for d in data:
min_value = min(min_value, d)
result = max(result, min_value)
if __name__ == "__main__":
n, m = map(int, input().split())
matrix = []
for _ in range(n):
matrix.append(list(map(int, input().split())))
print(solution(matrix=matrix))
참고 문헌
>> Home