ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바기초개념 다시잡기 자바의정석 - 연습문제 5장
    자바 기초 2021. 7. 24. 18:42

    1. Chapter 5 - 배열

    - 배열 arr에 담긴 모든 값을 더하는 프로그램을 완성하시오.
    public class Ch_5 {
    	public static void main(String[] args) {
    		int[] arr = {10, 20, 30, 40, 50};
    		int sum = 0;
    		for (int i=0; i<arr.length; i++) {
    			sum += arr[i];
    		}
    		System.out.println("sum="+sum);
    	}
    }
    sum=150
    
    
    - 2차원 배열 arr에 담긴 모든 값의 총합과 평균을 구하는 프로그램을 완성하시오.
    public class Ch_5 {
    	public static void main(String[] args) {
    		int[][] arr = {
    				{ 5, 5, 5, 5, 5},
    				{10,10,10,10,10},
    				{20,20,20,20,20},
    				{30,30,30,30,30}
    				};
    		System.out.println(arr[0].length);
    		int total = 0;
    		float avg = 0;
    		
    		for (int i=0; i<arr.length; i++) { //열
    			for (int j=0; j<arr[i].length; j++) {//행
    				total += arr[i][j];//1열에서 한행 쫙, 2열에서 한행 쫙
    			}
    		}
    		avg = total / (float)(arr.length * arr[0].length);//4 * 5
    		System.out.println("total="+total);
    		System.out.println("avg="+avg);
    	}
    }
    5
    total=325
    avg=16.25
    
    
    -1과 9사이의 중복되지 않은 숫자로 이루어진 3자리 숫자를 만들어내는 프로그램을 만드시오.
    public class Ch_5 {
    	public static void main(String[] args) {
    		int[] ballArr = {1,2,3,4,5,6,7,8,9};
    		int[] ball3 = new int[3];
    		
    		for (int i=0; i<ballArr.length; i++) {
    			int j = (int)(Math.random()*ballArr.length);
    			int tmp = 0;
    			
    			tmp = ballArr[i]; //처음 1번이오고 그다음부터 랜덤 값
    			ballArr[i] = ballArr[j]; // 1~9 랜덤 숫자 넣기
    			ballArr[j] = tmp; //처음 1번이오고 그다음부터 랜덤 값
    		}
    		System.arraycopy(ballArr, 0, ball3, 0, 3); // ballArr의 앞 3개를 ball3로 복사
    		for (int i=0; i<ball3.length; i++) {
    			System.out.println(ball3[i]);
    		}
    		System.out.println();
    	}
    }
    7
    4
    2
    
    
    - 거스름돈을 몇개의 동전으로 지불할 수 있는지 계산하는 프로그램을 만드시오.
    public class Ch_5 {
    	public static void main(String[] args) {
    		// 큰 금액의 동전을 우선적으로 거슬러 줘야한다.
    		int[] coinUnit = {500, 100, 50, 10};
    		int money = 2680;
    		System.out.println("money="+money);
    		
    		for(int i=0;i<coinUnit.length;i++) {
    				System.out.println(coinUnit[i]+"원:" + money/coinUnit[i]);
    				money = money%coinUnit[i];
    //				System.out.println("money="+money);
    		}
    	}
    }
    money=2680
    500원:5
    money=180
    100원:1
    money=80
    50원:1
    money=30
    10원:3
    money=0
    
    
    -자판기 프로그램 짜기
    public class Ch_5 {
    	public static void main(String[] args) {
    
    		Scanner sc = new Scanner(System.in);
    		int coffee = 300;
    		int cocoa = 200;
    		int coffeeCount = 10;
    		int cocoaCount = 10;
    		int menu = 0;
    		
    		System.out.println("메뉴를 골라주세요>>");
    		System.out.println("1.커피 2.코코아 3.남은 수량 4.종료");
    		
    		while(true) {
    			menu = sc.nextInt();
    			if(menu == 1) {
    				System.out.println("커피를 고르셨습니다. 금액은 300원 입니다.");
    				int input = sc.nextInt();
    				if (input >= coffee) {
    					System.out.println("커피 나왔습니다.");
    					System.out.println("거스름돈은 " + (input - coffee) + " 입니다.");
    					coffeeCount -= 1;
    					System.out.println("커피 남은 수량: " + coffeeCount);
    					System.out.println("1.커피 2.코코아 3.남은수량 4.종료");
    				}
    				else if(input < cocoa) {
    					System.out.println("넣으신 금액(" + input + ") 을 반환하고 메뉴로 돌아갑니다.");
    					System.out.println("1.커피 2.코코아 3.남은수량 4.종료");
    					}
    				}
    			if(menu == 2) {
    				System.out.println("코코아를 고르셨습니다. 금액은 200원 입니다.");
    				int input = sc.nextInt();
    				if (input >= cocoa) {
    					System.out.println("코코아 나왔습니다.");
    					System.out.println("거스름돈은 " + (input - cocoa) + " 입니다.");
    					coffeeCount -= 1;
    					System.out.println("코코아 남은 수량: " + cocoaCount);
    					System.out.println("1.커피 2.코코아 3.남은수량 4.종료");
    				}
    				else if (input < cocoa) {
    					System.out.println("넣으신 금액(" + input + ") 을 반환하고 메뉴로 돌아갑니다.");
    					System.out.println("1.커피 2.코코아 3.남은수량 4.종료");
    					}
    				}
    			if(menu == 3) {
    				System.out.println("현재 남은 수량을 봅니다.");
    				System.out.println("커피:"+coffeeCount+" 코코아:"+cocoaCount);
    				System.out.println("1.커피 2.코코아 3.남은수량 4.종료");
    				}
    			if(menu == 4) {
    				System.out.println("종료를 선택하셨습니다. 프로그램을 종료 합니다.");
    				break;
    				
    			}
    		}
    	}
    }
    
    
    -배열 answer에 담긴 데이터를 읽고 각 숫자의 개수를 세어서 개수만큼 ‘*’을 찍어서 그래프를 그리는 프로그램을 작성하시오
    public class Ch_5 {
    	public static void main(String[] args) {
    		int[] answer = { 1,4,4,3,1,4,4,2,1,3,2 };
    		int[] counter = new int[4];
    		
    		for (int i=0; i<answer.length; i++) {
    			counter[answer[i]-1]++;
    			System.out.println(Arrays.toString(counter));
    //			System.out.println(answer[i]);
    		}
    		
    		for (int i=0; i<counter.length;i++) {
    			System.out.print(counter[i]);
    			for(int j=0; j < counter[i];j++) {
    				System.out.print("*"); // counter[i]의 값 만큼 ‘*’을 찍는다.
    				}
    			System.out.println();
    		}
    	}
    }
    [1, 0, 0, 0]
    [1, 0, 0, 1]
    [1, 0, 0, 2]
    [1, 0, 1, 2]
    [2, 0, 1, 2]
    [2, 0, 1, 3]
    [2, 0, 1, 4]
    [2, 1, 1, 4]
    [3, 1, 1, 4]
    [3, 1, 2, 4]
    [3, 2, 2, 4]
    3***
    2**
    2**
    4****
    
    
    나머지 2차원 3차원 배열문제는 생략.
Designed by Tistory.