안녕하세요 성조입니다.
개인 풀이 내용이며, 정답이 아닙니다!
답이 다르다 생각되시면 댓글 부탁드리겠습니다!
1. 다음 프로그램에 대해 물음에 답하라
1
2
3
4
5
6
|
int sum=0, i=0;
while (i < 100){
sum = sum + i;
i +=2;
}
System.out.println(sum);
|
(1) 무엇을 계산하는 코드이며 실행 결과 출력되는 내용은?
-> 0부터 100미만까지 짝수의 합을 구하는 코드이며, 값은 2450가 나온다.
(2) 위의 코드를 main() 메소드로 만들고 WhileTest 클래스로 완성하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class WhileTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0, i=0;
while (i < 100){
sum = sum + i;
i +=2;
}
System.out.println(sum);
}
}
|
(3) for 문을 이용하여 동일하게 실행되는 ForTest 클래스를 작성하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class ForTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
for(int i=0;i<100;i+=2)
sum = sum+i;
System.out.println(sum);
}
}
|
(4) do-while 문을 이용하여 동일하게 실행되는 DoWhileTest 클래스를 작성하라.
1
2
3
4
5
6
7
8
9
10
11
12
|
public class DoWhileTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0, i=0;
do {
sum = sum + i;
i +=2;
} while (i < 100);
System.out.println(sum);
}
}
|
2. 다음 2차원 배열 n을 출력하는 프로그램을 작성하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class num_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
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를 입력받았을 경우이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.Scanner;
public class num_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하시오>>");
int num = sc.nextInt();
for(int i=1;i<=num;i++) {
for(int j=num;j>=i;j--) {
System.out.print("*");
}
System.out.println();
}
}
}
|
4. Scanner를 이용하여 소문자 알파벳을 하나 입력받고 다음과 같이 출력하는 프로그램을 작성하라. 다음은 e를 입력받았을 경우이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.Scanner;
public class num_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print("소문자 알파벳 하나를 입력하시오>>");
String s = sc.next();
char c = s.charAt(0);
for(int i=0;i<=c-'a';i++) {
for(char j='a';j<=c-i;j++) {
System.out.print(j);
}
System.out.println();
}
}
}
|
5. 양의 정수 10개 입력받아 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램을 작성하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.Scanner;
public class num_5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print("양의 정수 10개를 입력하시오>>");
int arr[] = new int[10];
for(int i=0;i<10;i++)
arr[i] = sc.nextInt();
System.out.print("3의 배수는 ");
for(int i=0;i<10;i++)
if(arr[i]%3==0)
System.out.print(arr[i] + " ");
}
}
|
6. 키보드에서 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1원짜리 동전이 각 몇 개로 변환되는지 예시와 같이 출력하라. 단 이때 반드시 다음 배열과 반복문을 이용하여 작성하라.
int [] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1}; |
금액을 입력하시오>>65123 50000원 짜리 : 1개 10000원 짜리 : 1개 1000원 짜리 : 5개 100원 짜리 : 1개 10원 짜리 : 2개 1원 짜리 : 3개 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.Scanner;
public class num_6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int unit[] = {50000, 10000, 1000, 500, 100, 50, 10, 1};
System.out.print("금액을 입력하시오>>");
int money = sc.nextInt();
for(int i=0;i<unit.length;i++) {
int zero_number = money/unit[i];
if(zero_number!=0) {
System.out.printf("%d원 짜리 : %d개\n", unit[i], zero_number);
money = money%unit[i];
}
}
}
}
|
7. 정수를 10개 저장하는 배열을 만들고 1에서 10까지 범위의 정수를 랜덤하게 생성하여 배열에 저장하라. 그리고 배열에 든 숫자들과 평균을 출력하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class num_7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
System.out.print("랜덤한 정수들 : ");
for(int j=0;j<10;j++) {
int i = (int)(Math.random()*10+1);
System.out.print(i+" ");
sum += i;
}
System.out.println();
System.out.print("평균은 :" + sum/10.);
}
}
|
8. 정수를 몇 개 저장할지 키보드로부터 개수를 입력받아(100보다 작은 개수) 정수 배열을 생성하고, 이곳에 1에서 100까지 범위의 정수를 랜덤하게 삽입하라. 배열에는 같은 수가 없도록 하고 배열을 출력하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import java.util.Scanner;
public class num_8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print("정수 몇개?");
int num = sc.nextInt();
int arr[] = new int[num];
for(int i=0;i<arr.length;i++) {
int r = (int)(Math.random()*100+1);
int overlap = 0;
for(int j=0;j<i;j++) {
if(arr[i]==r){
overlap +=1;
break;
}
if (overlap !=0)
continue;
}
arr[i] = r;
}
for(int i =0;i<arr.length;i++) {
if(i%10==0 && i!=0)
System.out.println();
System.out.print(arr[i] + " ");
}
}
}
|
9. 4x4의 2차원 배열을 만들고 이곳에 1에서 10까지 범위의 정수를 랜덤하게 생성하여 정수 16개를 배열에 저장하고, 2차원 배열을 화면에 출력하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class num_9 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[][] = new int[4][4];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
int r = (int)(Math.random()*10+1);
arr[i][j]=r;
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
}
|
10. 4x4의 2차원 배열을 만들고 이곳에 1에서 10까지 범위의 정수를 10개만 랜덤하게 생성하여 임의의 위치에 삽입하라. 동일한 정수가 있어도 상관없다. 나머지 6개의 숫자는 모두 0이다. 만들어진 2차원 배열을 화면에 출력하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
public class num_10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[][] = new int[4][4];
int rN=0; //RandomNumber
while(rN<10) {
int x = (int)(Math.random()*4);
int y = (int)(Math.random()*4);
if(arr[x][y]==0) {
arr[x][y] = (int)(Math.random()*10+1);
rN +=1;
}
}
for(int i=0;i<arr.length;i++){
for(int j=0; j<arr.length;j++) {
System.out.print(arr[i][j]+ " ");
}
System.out.println();
}
}
}
|
11. 다음과 같이 작동하는 Average.java를 작성하라. 명령 프롬포트로 읽어올 수 있도록 작성 (평균값 구하기)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class Average {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
int count=0;
for(int i=0;i<args.length;i++) {
count++;
sum+= Integer.parseInt(args[i]);
}
System.out.print(sum/count);
}
}
|
12. Add.java 작성. 명령 프롬포트로 읽어올 수 있도록 작성(정수 값만 골라서 합을 구하기)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class Add {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
for(int i=0;i<args.length;i++) {
try {
sum+= Integer.parseInt(args[i]);
}catch(NumberFormatException e) {
continue;
}
}
System.out.print(sum);
}
}
|
13. 반복문을 이용하여 369게임에서 박수를 쳐야 하는 경우를 순서대로 화면에 출력해보자. (1~99까지)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class num_13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count=1;
for(int i=1;i<100;i++) {
if(count%10==3 && count/10==3 || count%10==6 && count/10==6 ||
count%10==9 && count/10==9){
System.out.printf("%d 박수 짝짝\n", i);
}else if( count%10==3 || count%10==6 || count%10==9 ){
System.out.printf("%d 박수 짝\n",i);
}
count++;
}
}
}
|
14. 다음 코드와 같이 과목과 점수가 짝을 이루도록 2개의 배열을 작성하라.
String course [] = {"Java", "C++", "HTML5", "컴퓨터구조", "안드로이드" }; int score [] = {95, 88, 76, 62, 52}; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import java.util.Scanner;
public class num_14 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc =new Scanner(System.in);
String course [] = {"Java", "C++", "HTML5", "컴퓨터구조", "안드로이드"};
int score [] = {95, 88, 76, 62, 55};
while(true) {
System.out.print("과목 이름>>");
String name = sc.next();
if(name.equals("그만"))
break;
for(int i=0; i<course.length;i++) {
if(course[i].equals(name)){
int n = score[i];
System.out.printf("%s의 점수는 %d\n", course[i], n);
break;
}
if(i==course.length-1)
System.out.println("없는 과목입니다.");
}
}
}
}
|
15. 다음은 2개의 정수를 입력 받아 곱을 구하는 Multiply 클래스이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import java.util.Scanner;
public class num_15 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print("곱하고자 하는 두 수 입력>>");
int n = sc.nextInt();
int m = sc.nextInt();
System.out.print(n + "x" + m + "=" + n*m );
sc.close();
}
}
|
위의 코드는 실수가 입력되면 예외가 발생된다.
try-catch에서 catch블록에 InputMismatchException을 넣어 작성하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.*;
public class num_15 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(true) {
try {
System.out.print("곱하고자 하는 두 수 입력>>");
int n = sc.nextInt();
int m = sc.nextInt();
System.out.print(n + "x" + m + "=" + n*m );
break;
} catch (InputMismatchException e) {
sc.nextLine();
System.out.println("실수는 입력하면 안됩니다.");
}
}
sc.close();
}
}
|
16. 컴퓨터와 독자사이의 가위 바위 보 게임을 만들어보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
import java.util.Scanner;
public class num_16 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String str[] = {"가위", "바위", "보"};
System.out.println("컴퓨터와 가위 바위 보 게임을 합니다.");
while (true){
System.out.print("가위 바위 보!>>");
String text = sc.nextLine();
int n = (int)(Math.random()*3);
if(text.equals("그만")) {
System.out.println("게임을 종료합니다...");
break;
}
else if(str[n].equals("가위"))
if(text.equals("가위"))
System.out.printf("사용자 = %s , 컴퓨터 = %s, 비겼습니다.\n", text, str[n]);
else if(text.equals("바위"))
System.out.printf("사용자 = %s , 컴퓨터 = %s, 이겼습니다.\n", text, str[n]);
else
System.out.printf("사용자 = %s , 컴퓨터 = %s, 졌습니다.\n", text, str[n]);
else if(str[n].equals("바위"))
if(text.equals("바위"))
System.out.printf("사용자 = %s , 컴퓨터 = %s, 비겼습니다.\n", text, str[n]);
else if(text.equals("보"))
System.out.printf("사용자 = %s , 컴퓨터 = %s, 이겼습니다.\n", text, str[n]);
else
System.out.printf("사용자 = %s , 컴퓨터 = %s, 졌습니다.\n", text, str[n]);
else
if(text.equals("보"))
System.out.printf("사용자 = %s , 컴퓨터 = %s, 비겼습니다.\n", text, str[n]);
else if(text.equals("가위"))
System.out.printf("사용자 = %s , 컴퓨터 = %s, 이겼습니다.\n", text, str[n]);
else
System.out.printf("사용자 = %s , 컴퓨터 = %s, 졌습니다.\n", text, str[n]);
}
}
}
|
문제의 정답이 다르다 생각하시면 댓글로 피드백 부탁드립니다!
다음 포스팅 때 뵙겠습니다!
'개인 학습용 해설 > 명품 Java Programming' 카테고리의 다른 글
명품 JAVA Programming 4판 4장 연습문제 - 실습문제 (0) | 2021.11.18 |
---|---|
명품 JAVA Programming 4판 4장 연습문제 - 이론문제 (4) | 2021.11.15 |
명품 JAVA Programming 4판 3장 연습문제 - 이론문제 개인 풀이 및 개인해설 (0) | 2020.10.16 |
명품 JAVA Programming 4판 2장 연습문제 - 실습문제 (0) | 2020.10.15 |
명품 JAVA Programming 4판 2장 연습문제 - 이론문제 개인풀이 (0) | 2020.10.13 |