이것이 코딩 테스트다 with Python
기출 : 2019 국가 교육기관 코딩 테스트
Greedy알고리즘
문제
- 여러개의 숫자 중 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임.
- 숫자가 쓰인 카드가 N X M 형태로 놓여있다.
- 각 행의 가장 낮은 숫자를 뽑은다음 그 숫자들 사이에 가장 큰 숫자를 출력한다.
입력 조건
- 첫째 줄에 숫자카드들이 놓은 행의 개수 N과 열의 개수 M이 공백을 기준으로 하여 각각 자연수로 주어진다. ( 1 ≤N, M ≤ 100)
- 둘째 줄부터 N개의 줄에 걸쳐 각 카드에 적힌 숫자가 주어진다. 숫자는 1 이상 10,000 이하의 자연수이다.
출력 조건
- 첫째 줄에 게임의 룰에 맞게 선택한 카드에 적힌 숫자를 출력한다.
Solution
n, m = map(int, input().split())
result = 0;
for i in range(n):
arrayData = list(map(int, input().split()))
arrayData.sort()
minValue = arrayData[0]
result = max(result, minValue)
print(result)
n, m = map(int, input().split())
: 행과 열의 개수를 입력 받음
for i in range(n):
: 행의 개수만큼 반복
arrayData = list(map(int, input().split()))
: 각 행에 해당하는 카드 배열을 입력 받음
arrayData.sort()
: 배열을 정렬
minValue = arrayData[0]
: 최솟값을 minValue에 넣음
result = max(result, minValue)
: result에 각 행의 최솟값들을 비교하여 넣음