[Greedy] 숫자 카드 게임

1126 단어 greedygreedy

1. 규칙

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

  2. 둘째 줄붙터 N개의 줄에 걸쳐 각 카드에 적힌 숫자가 주어진다.

  • 출력 조건
  1. 첫쨰 줄에 게임의 룰에 맞게 선택한 카드에 적힌 숫자를 출력한다.
  • 입&출력
    • 입력
      3 3
      3 1 2
      4 1 4
      2 2 2
    • 출력
      3

2. 접근법

조건을 통해 얻을 수 있는 결론은 하단의 2가지 정보이다.
1. 행마다 가장 작은 수를 뽑아야 한다.
2. 작은 수 중 가장 큰 수를 출력 해야한다.

즉, 최초 n,m을 입력받아 리스트가 완성이 되면

최초 특정 변수를 0으로 설정하여, 그 값과 행의 최소값을 비교하여
다음 행의 최소 값을 비교하는 방식으로 진행되면 될 것 같다는 생각을 하였다.

3. 코드

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)

좋은 웹페이지 즐겨찾기