1. 程式人生 > >網易2019測試開發筆試程式設計第一題(小易俄羅斯方塊)

網易2019測試開發筆試程式設計第一題(小易俄羅斯方塊)

題目描述

小易有一個古老的遊戲機,上面有著經典的遊戲俄羅斯方塊。因為它比較古老,所以規則和一般的俄羅斯方塊不同。熒幕上一共有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); } }