알고리즘 문제 풀이/이코테

[이코테] CH03 그리디 실전문제 숫자 카드 게임

파란색 가운 2023. 11. 13. 19:54
import sys
# sys.stdin.readline()
from collections import deque
sys.setrecursionlimit(100000000)
import heapq
INF = 1e9

array = []
N,M = map(int,sys.stdin.readline().split())
for _ in range(N):
    array.append(list(map(int,sys.stdin.readline().split())))

maxValue = min(array[0])

for i in range(N):
    temp = min(array[i])
    if maxValue < temp:
        maxValue = temp
  
print(maxValue)

내 코드

이차원배열으로 해결했다 그냥

maxValue = min(array[0]) 

첫 번째 행에서 가장 짧은 애를 고르고

이제 각 행마다 MinValue(temp)를 선택 후 

maxValue보다 크다면 걔를 maxValue로 변경해줬다

 

해설은 

그냥 이차원 배열 말고

배열을 초기화하면서 일차원배열에 입력 받고 

거기에 있는 minValue, 그 행의 min값중 큰 값을 저장해주는 방식으로 했다

크게 차이는 없었지만 시간복잡도는 해설이 더 우수하므로

불필요한 입력같은거 줄여보기!