まずはマスの数 を受け取り、次に各マスに書かれた をリストで受け取ります。
このときリスト はインデックス から始まるのに対し、マス は から始まることに注意しましょう。
君の現在いるマスは、それまでに行ったけんけんとけんけんぱの回数によって変わってくるため、for 文ではなく while 文で管理すると解きやすくなります。
ゲームが終了するまで各マスで以下の手順通りに判定を行います。
君がマス にいるとき、
これらの手順を繰り返し、けんけんとけんけんぱの回数をカウントしていきます。
xxxxxxxxxx
int main(){
int N;
scanf("%d", &N);
int M[N];
for(int i = 0; i < N; i++){
scanf("%d", &M[i]);
}
int ken_count = 0; // けんけんの回数
int kenpa_count = 0; // けんけんぱの回数
int i = 0; // # Tanaka君の現在位置
while(i < N){
if (M[i] == 0){
break;
}
else if(M[i] == 1){
ken_count += 1;
i += 1;
}else{
kenpa_count += 1;
i += 2;
}
}
printf("%d %d\n",ken_count, kenpa_count);
}
xxxxxxxxxx
using namespace std;
int main() {
int N;
cin >> N;
vector<int> M(N);
for (int i = 0; i < N; i++) {
cin >> M[i];
}
int ken_count = 0; // けんけんを行った回数
int kenpa_count = 0; // けんけんぱを行った回数
int i = 0; // Tanaka君の現在位置
while (i < N) {
if (M[i] == 0) {
break;
} else if (M[i] == 1) {
ken_count++;
i++;
} else if (M[i] == 2) {
kenpa_count++;
i += 2;
}
}
cout << ken_count << ' ' << kenpa_count << endl;
return 0;
}
xxxxxxxxxx
N = int(input())
M = list(map(int, input().split()))
ken_count = 0 # けんけんの回数
kenpa_count = 0 # けんけんぱの回数
i = 0 # Tanaka君の現在位置
while i < N:
if M[i] == 0:
break
elif M[i] == 1:
ken_count += 1
i += 1
elif M[i] == 2:
kenpa_count += 1
i += 2
print(ken_count, kenpa_count)