스마트 인재개발원/명품자바

2021-04-28 명품자바 Chapter 3 실습예제(자바페스티벌)

2. 다음 2차원 배열 n을 출력하는 프로그램을 작성하라.

int n[][] = {{1}, {1, 2, 3}, {1}, {1, 2, 3, 4}, {1, 2}};

1
1 2 3
1
1 2 3 4
1 2 

 

package Chapter03;

public class ex_실습02_2차원배열 {

	public static void main(String[] args) {
		int n [][] = {{1}, {1,2,3}, {1}, {1,2,3,4,}, {1,2}};
		
		for(int i = 0; i<n.length; i++) {
			for(int j = 0; j<n[i].length; j++ ) {
				
				System.out.print(n[i][j] + " ");
			}
			System.out.println();
		}

	}

}

 

3. Scanner를 이용하여 정수를 입력받고 다음과 같이 *를 출력하는 프로그램을 작성하라. 다음은 5를 입력받았을 경우이다.정수를 입력하시오 >> 5
*****
****
***
**
*

 

package Chapter03;

import java.util.Scanner;

public class ex_실습03_실수입력받고별그리기 {
	public static void main(String[] args) {
		
	
	Scanner sc = new Scanner (System.in);
	System.out.print("정수를 입력하시오>>");
	int input_num = sc.nextInt();
	
	for(int i=0; i<input_num; i++) {
		for(int j=input_num-i; j>0; j--) {
			
			System.out.print("*");
			
		}
		
		System.out.println();
		
		}
	
	}
}

 

4. Scanner를 이용하여 소문자 알파벳을 하나 입력받고 다음과 같이 출력하는 프로그램을 작성하라. 다음은 e를 입력받았을 경우이다.소문자 알파벳 하나를 입력하시오 >> e
abcde
abcd
abc
ab
a

[Hint] Scanner는 문자를 입력받는 기능이 없다. 그러므로 문자열을 입력받아야 한다. 다음 코드를 참고하라.

String s = scanner.next(); // 문자열 읽기
char c = s.charAt(0); // 문자열의 첫 번째 문자

 

package Chapter03;

import java.util.Scanner;

public class ex_실습04_알파벳을입력 {

	public static void main(String[] args) {
		
		Scanner sc  = new Scanner(System.in);
		
		System.out.print("소문자 알파벳 하나를 입력하시오>>");
		String alp = sc.next();
		char alp_first = alp.charAt(0);
		int alp_num = (int)alp_first;
		int a_num = (int)'a';
		
	
		if(alp_num == a_num) {
			System.out.println((char)a_num);
		}else {
			for(int j = alp_num-a_num; j>-1; j--) {
				for(int i = a_num; i<=alp_num; i++) {
				
				System.out.print((char)i);
				
			}
			
			alp_num --;
			System.out.println();
			
			}
			
			
		}
			
		
		

	}

}

5. 양의 정수를 10개 입력받아 배열에 저장하고, 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램을 작성하라.양의 정수 10개를 입력하시오 >> 1 5 99 22 345 125 2346 55 32 85
3의 배수는 99 345 2346 

 

package Chapter03;

import java.util.ArrayList;
import java.util.Scanner;

public class ex_실습05양의정수10개 {
	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		ArrayList <Integer> three_num = new ArrayList<>();
		ArrayList <Integer> real_three_num = new ArrayList<>();
	
		System.out.print("양의 정수 10개를 입력하시오>>");
		for(int i=0; i<10; i++) {
		three_num.add(sc.nextInt());
		}
		
		
		for(int j=0; j<10; j++) {
			if(three_num.get(j)%3 ==0) {
				real_three_num.add(three_num.get(j));
			}
			
		}
		
		System.out.print("3의 배수는");
		for(int k=0; k<real_three_num.size(); k++) {
			
			System.out.print(real_three_num.get(k)+" ");
			
		}
		
	}
}

6. 배열과 반복문을 이용하여 프로그램을 작성해보자. 키보드에서 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1원짜리 동전이 각 몇 개로 변환되는지 예시와 같이 출력하라. 이때 반드시 다음 배열을 이용하고 반복문으로 작성하라.

int[] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1}; // 환산할 돈의 종류

금액을 입력하시오 >> 65123
50000 원 짜리 : 1개
10000 원 짜리 : 1개
1000 원 짜리 : 5개
500 원 짜리 : 0개
100 원 짜리 : 1개
50 원 짜리 : 0개
10 원 짜리 : 2개
1 원 짜리 : 3개 

 

package Chapter03;

import java.util.Scanner;

public class ex_실습06배열과반복문액수받아 {

	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		int [] unit = {50000,10000,1000,500,100,50,10,1};
		
		System.out.print("금액을 입력하시오>>");
		int input_num = sc.nextInt();
		
		for(int i=0; i<=unit.length-1; i++) {
			if(input_num/unit[i] !=0)
			{
				System.out.println(unit[i]+"원 짜리 : " + (input_num/unit[i]) + "개");
			}
			input_num = input_num%unit[i];
		}
		
	}

}

7. 정수를 10개 저장하는 배열을 만들고 1에서 10까지 범위의 정수를 랜덤하게 생성하여 배열에 저장하라. 그리고 배열에 든 숫자들과 평균을 출력하라.랜덤한 정수들 : 3 6 3 6 1 3 8 9 6 9
평균은 5.4

[Hint] 1에서 10까지 범위의 정수를 랜덤하게 생성할 때는 다음 코드를 이용하라.

int i = (int)(Math.random()*10+1);

 

package Chapter03;

import java.util.ArrayList;
import java.util.Scanner;

public class ex_실습07정수10개를저장하는배열 {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		ArrayList <Integer> input_number = new ArrayList <>();
		
		int sum =0;
		System.out.print("랜덤한 정수들 : ");
		
		for(int i = 0; i<10; i++) {
			input_number.add(sc.nextInt());	
				
		}
		
		for(int j = 0; j<input_number.size(); j++) {
			
			sum += input_number.get(j);
			
		}
		
		
		System.out.println((double)sum/input_number.size());
	}

}

8. 정수를 몇 개 저장할지 키보드로부터 개수를 입력받아(100보다 작은 개수) 정수 배열을 생성하고, 이곳에 1에서 100까지 범위의 정수를 랜덤하게 삽입하라. 배열에는 같은 수가 없도록 하고 배열을 출력하라.정수 몇개? >> 24
26 87 78 44 93 99 37 40 2 63
95 82 51 53 4 94 5 14 33 39
32 58 70 6 

 

package Chapter03;

import java.util.ArrayList;
import java.util.Scanner;

public class ex_실습08정수를몇개저장할지 {

	public static void main(String[] args) {
		ArrayList <Integer> random_array = new ArrayList <> ();  
		
		Scanner sc = new Scanner(System.in);
		System.out.print("정수 몇개?>");
		int get_num = sc.nextInt();
		for(int i = 0; i<get_num; i++) {
			int random_num = (int)(Math.random()*100+1);
			if(!random_array.contains(random_num)) {
				
				random_array.add(random_num);
				
			}else {
				get_num++;
			}
			
			
		}
		
		System.out.println(random_array);

	}

}

9. 4 x 4의 2차원 배열을 만들고 이곳에 1에서 10까지 범위의 정수를 랜덤하게 생성하여 정수 16개를 배열에 저장하고, 2차원 배열을 화면에 출력하라.8 6 1 1
7 3 6 9
4 5 3 7
9 6 3 1 

 

package Chapter03;

public class ex_실습094x42차원배열을만들고 {

	public static void main(String[] args) {
		
		int[][] array = new int[4][4];
		
		for(int a=0; a<10;) {
			
			int i = (int)(Math.random()*4);
			int j = (int)(Math.random()*4);
			
			int k = (int)(Math.random()*11
					);
			
			if(array[i][j] == 0) {
				array[i][j] = k;
				a++;
			}

			
		}
		
	
		for(int i = 0;  i<4; i++) {
			
			for(int j =0; j<4; j++  ) {
				
				System.out.print(array[i][j] + " ");
			}
			
			System.out.println();
		}
		
	}

}

10.반복문을 이용하여 369게임에서 박수를 쳐야 하는 경우를 순서대로 화면에 출력해보자. 1부터 시작하며 99까지만 한다. 실행 사례는 다음과 같다.3박수 짝
6박수 짝
9박수 짝
13박수 짝
16박수 짝
19박수 짝
23박수 짝
26박수 짝
29박수 짝
30박수 짝
31박수 짝
32박수 짝
33박수 짝짝
34박수 짝
35박수 짝
36박수 짝짝
37박수 짝

 

package Chapter03;

import java.util.ArrayList;

public class ex_실습13반복문을_이용하여369 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		for(int i=0; i<100; i++) {
			System.out.print(i+" 박수 ");
			if(i%10 == 3 || i%10==6 || i%10 ==9) {
				System.out.print("짝");
			}
			
			if(i/10 == 3 || i/10==6 || i/10 ==9) {
				System.out.print("짝");
			}
			
			
			System.out.println();
		}

	}

}

14.

다음 코드와 같이 과목과 점수가 짝을 이루도록 2개의 배열을 작성하라.

String course[] = {"Java", "C++", "HTML5", "컴퓨터구조", "안드로이드"};
int score[] = {95, 88, 76, 62, 55};

그리고 다음 예시와 같이 과목 이름을 입력받아 점수를 출력하는 프로그램을 작성하라. "그만"을 입력받으면 종료한다. (Java는 인덱스 0에 있으므로 score[0]을 출력)

과목 이름 >> Jaba
없는 과목입니다.
과목 이름 >> Java
Java의 점수는 95
과목 이름 >> 안드로이드
안드로이드의 점수는 55
과목 이름 >> 그만

[Hint] 문자열을 비교하기 위해서는 String 클래스의 equals()메소드를 이용해야 한다.