Algorithm/greedy

[알고리즘 문제] 숫자 카드 게임

낭강 2020. 10. 30. 20:54
  • 오늘도 나동빈님의 서적에 나와있는 문제를 풀어보았습니다.
입력 예시1
3 3
3 1 2
4 1 4
2 2 2
출력 : 2

입력 예시2
2 4
7 3 1 8
3 3 3 4
출력 : 3

이 문제의 핵심은 각 행마다 가장 작은 수를 찾은 후, 그 중에서 가장 큰 수를 찾는 문제이다.

코드로 작성 해보았습니다.

#include<bits/stdc++.h>
using namespace std;
int arr[100][100];

int main()
{
 
int n, m,cmp=10001;
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> arr[i][j];
}
}
for (int i = 0; i < n; i++) {
sort(arr[i], arr[i] + m);
}
for (int i = 0; i < n; i++) {
if (cmp< arr[i][0]) {
cmp = arr[i][0];
}
}
cout << cmp;
}
  • 먼저, 2차원 배열에 입력 받은 후, 입력 받은 2차원 배열들의 행의 요소들 끼리 정렬합니다.
  • 그 이후에 행끼리 정렬된 요소들을 비교하여 가장 큰 수를 출력합니다.