숫자 카드 게임
유형 : 그리디 알고리즘
출처 : 이것이 취업을 위한 코딩 테스트다. with Python
프로그램 언어 : Python
난이도 : ★
규 칙
- 숫자가 쓰인 카드들이 N x M 형태로 놓여있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다.
- 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다.
- 그 다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다.
- 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 한다.
문 제
- 카드들이 NxM 형태로 놓여 있을 대, 게임의 룰에 맞게 카드를 뽑는 프로그램을 만드시오.
조 건
- 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 하여 각각 자연수로 주어진다. (1 < =N, M <= 100)
- 둘째 줄부터 N개의 줄에 걸쳐 각 카드에 적힌 숫자가 주어진다. 각 숫자는 1이상 10,000 이하의 자연수이다.
- 출력: 첫째 줄에 게임의 룰에 맞게 선택한 카드에 적힌 숫자를 출력한다.
입력 예시 1
3 3
3 1 2
4 1 4
2 2 2
출력 예시 1
2
# n, m을 공백으로 구분하여 입력받음. n은 행의 개수, m은 열의 개수를 의미한다.
n, m = map(int, input().split())
# 최종 결과를 저장할 변수를 0으로 초기화한다. 이 변수는 각 행에서 선택된 가장 작은 수들 중 가장 큰 수를 저장한다.
result = 0
# n번 반복하여 각 행을 입력받고 처리한다.
for i in range(n):
# 현재 행의 숫자들을 공백으로 구분하여 입력받아 리스트로 만든다.
data = list(map(int, input().split()))
# 현재 행에서 가장 작은 수를 찾는다.
min_value = min(data)
# 지금까지 찾은 가장 작은 수들 중에서 가장 큰 수와 현재 행의 가장 작은 수를 비교하여 더 큰 값을 result에 저장한다.
result = max(result, min_value)
# 최종적으로 result에 저장된 값을 출력한다. 이 값은 각 행에서 가장 작은 수들 중 최대값이다.
print(result)
참 고
2023.12.08 - [IT/관련 정보] - [코딩 테스트] 이것이 취업을 위한 코딩테스트다 with 파이썬
반응형
'Programming Test > 코테 대비 과정' 카테고리의 다른 글
[알고리즘 공부] 시각 (0) | 2024.03.22 |
---|---|
[알고리즘 공부] 1이 될 때까지 (0) | 2024.03.20 |
[알고리즘 공부] 그래프 알고리즘 (0) | 2024.03.20 |
[알고리즘 공부] 최단 경로 (0) | 2024.03.15 |
[알고리즘 공부] 다이나믹 프로그램 (0) | 2024.03.14 |