숫자카드 게임

이동욱

2021/08/27

Categories: 알고리즘

문제 - 숫자카드 게임


  1. 숫자가 쓰인 카드들이 N x M 형태로 놓여있다. 이때 N은 행의 수를 의미하며, M은 열의 개수를 의미한다.
  2. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다.
  3. 그 다음에 선택된 행에 포함된 카드 들 중에 가장 숫자가 낮은 카드를 뽑아야 한다.
  4. 따라서 처음에 카드를 골라낼 행을 선택할 때 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다.

제한 사항


아이디어


구현 문제

  1. 각 행을 반복하면서 열에 있는 숫자중에 가장 작은 숫자를 뽑는다.
  2. 모든 행을 순회하면서 뽑은 숫자중에서 가장 큰 숫자를 뽑는다.

코드


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