Programming 기초/Coding Test

[이코테 # Greedy3] 숫자 카드 게임

코딩상륙작전 2023. 6. 5. 16:24

* 숫자 카드 게임

'각 행마다 가장 작은 수를 찾은 뒤에 그 수 중에서 가장 큰 수'를 찾는 것이 핵심.

# 행(n)과 열(m) 개수 입력받기
n, m = map(int, input().split())
# 카드 더미 만들기
d = []
min = []
for i in range(n):
    d.append([])
    min.append(99)
    d[i] = list(map(int, input().split()))

# 게임 룰 적용
# 1 각 행 별로 min 값을 비교해야함
# 0번 인덱스는 1번째 행의 최솟값

for i in range(n):
    for j in range(m):
        if min[i] >= d[i][j]:
            min[i] = d[i][j]
MAX = 0
for i in range(n):
    if min[i] >= MAX:
        MAX = min[i]
print(MAX)

소요 시간 : 30분 가량

복습

-> 문법이 아직 체화되지 않음. 리스트의 생성과 append의 활용 기억해둘 것.

-> 반복 구조 주의할 것.

-> min(), max() 함수 이용할 것.

-> 예시 답안과 비교해서 복잡하고, 쓸데없이 긺. 

 

# 예시 답안
# 행(n)과 열(m) 개수 입력받기
n, m = map(int, input().split())
result = 0

# 카드 게임 룰 적용
for i in range(n):
    d = list(map(int, input().split()))
    min_value = min(d)
    result = max(result, min_value)

print(result)