網易2019測試開發筆試程式設計第一題(小易俄羅斯方塊)
阿新 • • 發佈:2019-02-18
題目描述
小易有一個古老的遊戲機,上面有著經典的遊戲俄羅斯方塊。因為它比較古老,所以規則和一般的俄羅斯方塊不同。熒幕上一共有n列,每次都會有一個1x 1的方塊隨機落下,在同一列中,後落下的方塊會疊在先前的方塊之上,當一整行方塊都被佔滿時,這一行會被消去,並得到1分。有一天,小易又開了一一局遊戲,當玩到第m個方塊落下時他覺得太無聊就關掉了,小易希望你告訴他這局遊戲他獲得的分數。
輸入描述:
第一行兩個數n, m
第二行m個數,C1,C2,….Cm,Ci表示第i個方塊落在第幾列
其中 1 <= n,m <= 1000,1 <= Ci <= n
輸出描述
小易這句遊戲獲得的分數
示例1
輸入:
3 9
1 1 2 2 2 3 1 2 3
輸出:
2
package test;
import java.util.Scanner;
public class Game{
//計算非零個數
public static int cou(int m,int[] num){
int s = 0;
for(int i = 0;i< m;i++){
if(num[i] != 0){
s = s+1;
}
}
return s;
}
//計算分數
public static void countScore(int n,int m,int[] num){
int score = 0;
do {
int count = 1;
for (int i = 0; i < m; i++) {
if (num[i] == count && count <=(n+1)) {
count = count + 1;
num[i] = 0 ;
}
}
if(count-1 == n){
score += (count-1)/n;
}
}while(cou(m,num)>=n);
System.out.println(score);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
String s = sc.nextLine();
String inputString = sc.nextLine();
String stringArray[] = inputString.split(" ");
int num[] = new int[m];
for (int i = 0; i < m; i++) {
num[i] = Integer.parseInt(stringArray[i]);
}
countScore(n, m, num);
}
}