Algorithm
[코딩테스트/Python] Greedy 알고리즘 예제/ 숫자 카드 게임
재온
2023. 3. 3. 16:32
숫자 카드 게임
여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임
- n*m 형식의 array
- 뽑고자 하는 카드가 포함되어 있는 행 선택-> 선택된 행에서 가장 숫자 낮은 카드 선택
-> 처음 카드 고를 행 선택할 때, 숫자 낮은 카드 뽑을거 고려해서 -> 가장 큰 숫자를 최종적으로 뽑도록 해야함!
Greedy 알고리즘 접근법
문제 해결을 위한 아이디어를 떠올리고 이를 구현해보자 !
가장 큰 수, 가장 작은 수 등의 말이 나온다면 greedy라고 생각하고 구현 아이디어를 떠올려보자
나의 풀이
n,m = map(int, input().split())
#n*m 만큼의 데이터 입력 받기 -> 각 행별 list로 저장
temp =[]
for i in range(n):
li = list(map(int, input().split()))
temp.append(min(li))
print(max(temp))
책 풀이
결과값을 0으로 먼저 정의한 후 각 행별 최소값과 비교하여 반복문을 돌며 최종 최소값을 반환하도록 함.
n,m = map(int, input().split())
result=0
for i in range(n):
data = list(map(int, input(),splti()))
min_value =min(data)
result = max(result, min_value)
print(result)
난 list에 최소값들을 저장한 후 list의 max값을 구하는 식으로 했는데, 이렇게 하는 방법도 있구나
[reference]
도서 "이것이 코딩 테스트다" (https://github.com/ndb796/python-for-coding-test)
300x250