코딩 기록들

[이코테] 그리디_숫자 카드 게임 본문

이코테_문제풀기_python

[이코테] 그리디_숫자 카드 게임

코딩펭귄 2023. 2. 23. 01:10
카드들이 N * M 형태로 놓여있을때, 게임의 룰에 맞게 카드를 뽑는 프로그램을 만들어보자.

(여러개의 숫자카드중에서 가장높은 숫자가 쓰인 카드한장을 뽑는 게임 )

 

 

게임의 룰

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

 

입력

  • 첫째줄에 숫자카드들이 놓인 행의개수 N과, 열의개수M이 공백을 기준으로 각각 자연수로 주어진다.
  • 둘째줄부터 N개의 줄에걸쳐 각 카드에 적힌 숫자가 주어진다. 각숫자는 1이상 10000이하의 자연수

출력

  • 첫째줄에 게임의 룰에맞게 선택한 카드에 적힌 숫자를 출력함

 

입력예시

3 3

3 1 2

4 1 4

2 2 2

출력예시

2

 

접근방법 : 각 행마다 가장 작은수를 찾음 > 그 수들 중에서 젤 큰 수를 찾음

 

 

방법1) min(), max() 이용

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)​