(6주차) 10월19일
숫자 카드 게임
-
(1/1) 숫자 카드 게임
숫자 카드 게임은 여러개의 숫자중에서 가장 높은 숫자가 쓰인 카드를 한장 뽑는 게임이다.
단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다.
- 숫자가 쓰인 카드들이 N $\times $M 형태로 놓여 있다.
- 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다.
- 그 다음 선택된 행에 포함된 카드들 중에서 가장 숫자가 낮은 카드를 뽑아야 한다.
- 따라서 처음에 카드를 골라낼 행을 선택할때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다.
-
예시1
입력
3 1 2
4 1 4
2 2 2
출력
2
-
예시2
입력
7 3 1 8
3 3 3 4
출력
3
(풀이)
(전략회의)
a1=c(3,1,2)
a2=c(4,1,4)
a3=c(2,2,2)
우리는 일단 아래와 같은 모양을 만들어야함
3 1 2
4 1 4
2 2 2
a1,a2,a3을 각각 row-vector 로 해석하고 bind 하면된다.
A = rbind(a1,a2,a3)
A
A= rbind(c(3,1,2),c(4,1,4),c(2,2,2))
입력이 A일경우 출력이 2가 나와야한다.
전략:
- A의 각 행(row)을 돌아가면서 가장 작은 숫자를 찾아 기록한다.
- 기록한 숫자들을 모아서 벡터로 만든다.
- 벡터의 최대값을 구한다.
할수있어야 하는것
- A의 1번째 행, 2번째행, 3번째행을 순서대로 뽑을 수 있어야 한다.
(실질적풀이)
A= rbind(c(3,1,2),c(4,1,4),c(2,2,2))
vec<-c()
for (i in 1:3) vec[i]<- min(A[i,])
max(vec)
-
입력이 아래와 같은 경우
7 3 1 8
3 3 3 4
A=rbind(c(7,3,1,8),c(3,3,3,4))
vec<-c()
for (i in 1:2) vec[i]<- min(A[i,])
max(vec)
입력구조가
3 4 5 1
7 7 7 2
8 1 8 2
3 3 4 5
와 같을 때 출력을 구하는 코드를 작성하시오.