본문 바로가기
Programming Test/코테 대비 과정

[알고리즘 공부] 숫자 카드 게임

by muns91 2024. 3. 20.
숫자 카드 게임

 

유형 : 그리디 알고리즘

출처 : 이것이 취업을 위한 코딩 테스트다. with Python

프로그램 언어 : Python

난이도 : ★

 

규 칙 

  1. 숫자가 쓰인 카드들이 N x M 형태로 놓여있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다.
  2. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다.
  3. 그 다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다.
  4. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 한다.

문 제 

  • 카드들이 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 파이썬

 

[코딩 테스트] 이것이 취업을 위한 코딩테스트다 with 파이썬

코딩 테스트, 어디서부터 그리고 어떻게 준비해야될까? 이제 졸업 혹은 졸업을 앞두신 분들 그리고 개발 관련 취업에 종사하시고 싶은 분들이라면 반드시 놓치지 말아야할 점이 바로 코딩 테스

muns-da2.tistory.com

 

반응형