일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 안드로이드
- ViewModel
- Python
- rxjava
- 파이썬
- 컴포즈
- 단위테스트
- 유닛테스트
- MVVM
- git
- 깃
- 코틀린
- Android
- Jetpack
- Observable
- 안드로이드 디자인패턴
- 공격적 프로그래밍
- 제한함수
- 디자인패턴
- Di
- dagger2
- 코딩테스트
- 테스트의 장점
- 자료구조
- Kotlin
- compose
- UnitTest
- Room
- mock
- 안정성
Archives
- Today
- Total
세상을 바꾸는 개발자
[코딩테스트] 숫자 카드게임(파이썬) 본문
< 숫자 카드 게임 > : 난이도 하
<문제>
숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다.
- 숫자가 쓰인 카드들이 N x M 형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다.
- 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다.
- 그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다.
- 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다.
카드들이 N x M 형태로 놓여 있을 때, 게임의 룰에 맞게 카드를 뽑는 프로그램을 만드시오.
<입력 조건>
- 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 하여 각각 자연수로 주어진다. (1 <= N, M <= 100)
- 둘째 줄부터 N개의 줄에 걸쳐 각 카드에 적힌 숫자가 주어진다. 각 숫자는 1 이상 10,000 이하의 자연수이다.
<출력 조건>
- 첫째 줄에 게임의 룰에 맞게 선택한 카드에 적힌 숫자를 출력한다.
<입력 예시> <출력 예시>
- 3 3 2
3 1 2
4 1 4
2 2 2 - 2 4 3
7 3 1 8
3 3 3 4
[나만의 풀이]
n, m = map(int, input().split())
card_list = [list(map(int, input().split())) for _ in range(n)]
result_list = []
for j in range(0, n):
min_data = card_list[j][0]
for i in range(0, m):
if min_data > card_list[j][i] :
min_data = card_list[j][i]
result_list.append(min_data)
result_list.sort()
print("선택된 카드의 숫자는 :: %d 입니다" %result_list[-1])
실행결과
< 나의 풀이 방법 >
가장 먼저 사용자에게
각 행에서 가장 작은 숫자를 뽑아서 리스트에 담은 다음 그 리스트를 숫자가 작은 순서대로 정렬했습니다.
그렇게 하면 가장 리스트의 마지막 인덱스의 숫자가 재일 큰 숫자가 되기 때문에 그 숫자를 뽑아줬습니다.
참고한 책 주소
'코딩테스트 > Python' 카테고리의 다른 글
[코딩테스트] 왕실의 나이트 (파이썬) (1) | 2021.09.01 |
---|---|
[코딩테스트] 시각 (파이썬) (0) | 2021.09.01 |
[코딩테스트] 상하좌우(파이썬) (3) | 2021.08.30 |
[코딩테스트] 1이 될때까지(파이썬) (0) | 2021.08.30 |
[코딩테스트] 큰수의 법칙(파이썬) (0) | 2021.08.30 |
Comments