본문 바로가기
자바 코딩

배열 코딩 연습 3

by akasha.park 2023. 3. 13.

 

 

 

Quiz1>주사위 놀이를 하다가 주사위를 10번 던져서 각 숫자가 몇 번씩 나왔는지 알아보려고 한다. 한번 던질 때마다 나온 주사위의 숫자를 입력받아서 각 숫자가 몇 번씩 나왔는지 출력하는 프로그램을 작성하시오.
입력 예>  5 6 3 4 5 5 2 2 4 6
출력 예>  1 : 0
	2 : 2
	3 : 1
	4 : 2
	5 : 3
	6 : 2

package lab.java.basic;

public class Quiz1 {

	public static void main(String[] args) {
		int[] nums = new int[10]; //주사위 눈 저장할 배열
		int[] dices = new int[6];  //주사위 눈의 개수 저장할 배열
		for (int i=0;i<nums.length;i++){
			   nums[i] = (int)(Math.random()*6)+1;  //난수 생성 (주사위 1~6) 후 배열에 저장
		}
		for (int i=0;i<nums.length;i++){
			  switch(nums[i]) {
			  case 1: ++dices[0] ; break;
			  case 2: ++dices[1] ; break;
			  case 3: ++dices[2] ; break;
			  case 4: ++dices[3] ; break;
			  case 5: ++dices[4] ; break;
			  case 6: ++dices[5] ; break;				
			  }
		}
		for (int i=0;i<dices.length;i++){
			System.out.println("주사위 "+(i+1)+ " 나온 횟수 :" + dices[i]);
		}
		
		
	}

}



Quiz2>학생들의 점수를 입력을 받다가 0이 입력되면 그 때까지 입력받은 점수를 10점 단위로 구분하여 점수대별 학생 수를 출력하는 프로그램을 작성하시오. (1명도 없는 점수는 출력하지 않는다.)학생은 최대 100명이하이다.
입력 예> 63 80 95 100 46 64 88 0
출력 예>  100 : 1 person
	90 : 1 person
	80 : 2 person
	60 : 2 person
	40 : 1 person

package lab.java.basic;

import java.util.Scanner;

public class Quiz2 {

	public static void main(String[] args) {
		int[] jumsus = new int[100]; //입력받은 점수를 저장할 배열
		int[] persons = new int[11];  //점수대 인원수를 저장할 배열
		Scanner input = new Scanner(System.in);
		int last = 0;
		System.out.print("점수 입력>>");
		for (int i=0;i<jumsus.length;i++){
			jumsus[i] = input.nextInt();  
			if (jumsus[i]==0) {
				last = i;//입력된 점수의 마지막 위치를 기억시켜 놓음
				break;
			}
		}
		for (int i=0;i<last;i++){ //입력된 점수의 마지막 위치까지만 반복 수행
			  switch(jumsus[i]/10) {			 
			  case 0: ++persons[0] ; break;
			  case 1: ++persons[1] ; break;
			  case 2: ++persons[2] ; break;
			  case 3: ++persons[3] ; break;
			  case 4: ++persons[4] ; break;
			  case 5: ++persons[5] ; break;	
			  case 6: ++persons[6] ; break;	
			  case 7: ++persons[7] ; break;	
			  case 8: ++persons[8] ; break;	
			  case 9: ++persons[9] ; break;	
			  case 10: ++persons[10] ; break;	
			  }
		}
		for (int i=persons.length-1;i>=0;i--){
			if(persons[i]!=0)			  
			  System.out.println(i*10+ " : " + persons[i]+" person");			  
		}
		
		
	}

}



Quiz3>4행 3열의 배열을 선언하고 아래의 값으로 초기화 한 후 차례대로 출력한 후 배열의 모든 값을 더한 결과를 출력하는 프로그램 구현
{{3, 5, 9}, {2, 11, 5}, {8, 30, 10}, {22, 5, 1}}
출력 예> 
3 5 9
2 11 5
8 30 10
22 5 1
111

Quiz4> 행의 크기를 입력받아 파스칼 삼각형을 작성하여 마지막 행부터 첫 번째 행까지 차례로 출력하는 프로그램 구현
입력 예> 6 
출력 예>   
1 5 10 10 5 1
1 4 6 4 1
1 3 3 1
1 2 1
1 1
1
hint>>파스칼 삼각형 규칙
1. 첫번재 줄은 항상 1이다.
2. 두번째 줄부터 각 숫자들은 자신의 왼쪽 위와  자신의 위의 숫자의 합으로 구성된다.
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
1 5 10 10 5 1 

package lab.java.basic;

import java.util.Scanner;

public class Quiz4 {

	public static void main(String[] args) {		 
		Scanner input = new Scanner(System.in);		
		System.out.print("행수 입력>>");
		int  rows = input.nextInt();
		int[][] pascal = new int[rows][];
		
		for (int i=0;i<pascal.length;i++){
			pascal[i] = new int[i+1]; 
			for (int j=0;j<=i;j++){
				if(i == j) {
                    pascal[i][j] = 1;
                }else if(j == 0) {
                    pascal[i][j] = 1;
                }else {
                    pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
                }
			}
		}
		 
		for (int i=0;i<pascal.length;i++){
			for (int j=0;j<pascal[i].length;j++){
				System.out.print(pascal[i][j]+" ");
			}
			System.out.println();
		}
		
		System.out.println();
		for (int i=pascal.length-1;i>=0;i--){
			for (int j=0;j<pascal[i].length;j++){
				System.out.print(pascal[i][j]+" ");
			}
			System.out.println();
		}
		
	}

}

'자바 코딩' 카테고리의 다른 글

메서드 정의, 구현 Coding 연습1  (0) 2023.03.15
배열, 메서드 코딩 연습  (1) 2023.03.14
반복문과 배열  (0) 2023.03.13
배열 연습문제2  (0) 2023.03.10
배열 연습문제 1  (0) 2023.03.10