본문 바로가기
코테/Greedy

[C/C++] 나동빈 숫자 카드 게임, Greedy

by 상똥 2023. 2. 2.

문제

숫자 카드 게임은 세로N개, 가로M개 형태로 놓인 카드들 사이에서 가장 큰 수가 적힌 카드를 뽑는 게임이다. 이 게임의 규칙은 아래와 같다
1. 먼저 뽑고자 하는 카드가 있는 행을 선택한다.
2. 그 다음 그 행에 포함된 카드들 중에서 가장 낮은 수가 적힌 카드를 뽑는다.
따라서, 전체 행렬에서 큰 수가 아닌 하나의 행에서 가장 낮은 수를 고려하여 뽑아야 한다. 예를들어 카드가 아래와 같이 나열되어 있다고 하자.

3  1  2
4  1  4
2  2  2

전체 행렬에서 가장 큰 수는 4지만, 4가 포함된 행의 가장 낮은 수는 1이므로 최종 수는 1이 된다. 첫 번째 행의 최종 숫자도 마찬가지이다. 마지막 행의 가장 큰 수는 2이지만, 가장 낮은 수도 2이므로 마지막 행을 선택해야 2가 도출되어 이길 수 있다.

첫째 줄에 행의 개수N(1≤N≤100)과 열의 개수M(1≤M≤100)을 자연수로 입력받는다. 둘째 줄부터 N개의 줄에 걸쳐 각 M개의 숫자(1≤숫자≤10,000)를 입력받는다.

코드

#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <iostream>

using namespace std;

int main() {
	int N, M, t, max_v=1;
	cin >> N >> M;
	for (int i = 0; i < N; i++) {
		int min_v = 10001;
		for (int j=0; j < M; j++) {
			cin >> t;
			min_v = min(t, min_v);
		}
		max_v = max(min_v, max_v);
	}
	cout << max_v;
}

풀이

1.