숫자 카드 게임
여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임
- 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
'Algorithm' 카테고리의 다른 글
[코딩테스트/Python] 꼭 필요한 자료구조 기초: 스택과 큐 (0) | 2023.03.13 |
---|---|
[코딩 테스트/Python] 구현 문제 (0) | 2023.03.06 |
[코딩테스트/Python] Greedy 알고리즘 예제/ 큰수의 법칙 (0) | 2023.03.02 |
[코딩테스트/Python] Greedy 알고리즘 예제/ 백준 2864 (0) | 2023.02.28 |
[코딩테스트/Python]Greedy (탐욕법) 알고리즘 (0) | 2023.02.27 |