Back-End/Java

명품 JAVA 에센셜 3장 실습 문제풀이

CJun 2021. 5. 23. 19:12
반응형

1. 영문 소문자 하나를 입력받고 그 문자보다

알파벳 순위가 낮은 모든 문자를 출력하는 프로그램을 작성하라.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example;
import java.util.Scanner;
public class study {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.print("영문 소문자 하나를 입력하시오. ");
    
    String a = scanner.next();
    char b = a.charAt(0);
    
    for(int i = 'a'; i <= b; i++) {
        if(i <= b) {
            System.out.print((char)i);
        }
        for(int j = i + 1; j <= b; j++) {
            System.out.print((char)j);
        }
        System.out.println();
        
        }
    }
}
cs

2. 정수를 10개 입력받아 배열에 저장한 후,

배열을 검색하여 3의 배수만 골라 출력하는 프로그램을 작성하라.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.example;
import java.util.Scanner;
public class study {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.print("정수 10개를 입력하시오. ");
    
    int num[] = new int[10];
    for(int i = 0; i < num.length; i++) {
        num[i] = scanner.nextInt();
    }
    for(int i = 0; i < num.length; i++) {
        if(num[i] % 3 == 0) {
            System.out.print(num[i] + " ");
        }
    }
    
    }
}
cs

3. 정수를 입력받아서 짝이면 "짝수", 홀수이면 "홀수"를 출력하는 프로그램을 작성하라.

사용자가 정수를 입력하지 않는 경우에는 프로그램을 종료해라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.example;
import java.util.InputMismatchException;
import java.util.Scanner;
public class study {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.print("정수를 입력하시오. ");
    
    try {
        int a = scanner.nextInt();
        if(a % 2 == 0
            System.out.println("짝수");
        else
            System.out.println("홀수");
    } catch (InputMismatchException e) {
        System.out.println("정수를 입력하지 않아 종료하겠습니다.");
    }
    }
}
cs

4. '일', '월', '화', '수', '목', '금', '토'로 초기화된 문자 배열 day를 선언하고

사용자로부터 정수를 입력받아배열(day의 크기 7)으로 나눈 나머지를 인덱스로 하여

배열 day에 저장된 문자를 출력하고 음수가 입력되면 프로그램을 종료하라.

 

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
package com.example;
import java.util.InputMismatchException;
import java.util.Scanner;
public class study {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    char day[] = {'일''월''화''수','목''금''토'};
    
    
    int a = 0;
    while(a >= 0) {
    try {
        System.out.print("정수를 입력하시오. ");
        a = scanner.nextInt();
        if(a >= 0 ) {
            System.out.println(day[a%7]);
        }
        else {
            System.out.println("프로그램을 종료합니다.");
        }
    } catch (InputMismatchException e) {
        System.out.println("정수를 입력하지 않아 종료하겠습니다.");
        break;
    }
    }
    }
}
cs

5. 정수를 10개 입력받아 배열에 저장하고 증가 순으로 정렬하여 출력하라

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
package com.example;
import java.util.InputMismatchException;
import java.util.Scanner;
public class study {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int ary[] = new int[10];
    System.out.print("정수 10개를 입력하시오. ");
    
    for(int i = 0; i < ary.length; i++) {
        ary[i] = scanner.nextInt();
    }
    int result;
    for(int i = 0; i < ary.length; i++) {
        for(int j = 0; j< ary.length; j++) {
            if(ary[i] > ary[j]) {
                result = ary[i];
                ary[i] = ary[j];
                ary[j] = result;
            }
        }
    }
        for(int i = 0; i < ary.length; i++) {
        System.out.print(ary[i] + " ");
        }
    
    
    }
}
cs

6. 다음과 같이 영어와 한글 짝을 이루는 2개의 배열을 만들고,

사용자로부터 영어단어를 입력받아서 한글을 출력하는 프로그램을 작성하라.

그리고 "exit"을 입력하면 프로그램을 종료시켜라.

 

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
package com.example;
 
import java.util.Scanner;
 
public class study_01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        String eng[] = {"study""java""love""student""happy"};
        String kor[] = {"공부""자바""사랑""학생""행복"};
        
        while(true) {
            System.out.print("영어단어를 입력하시오. ");
            String s = scanner.next();
            
            if(s.equals("exit")) {
                System.out.println("종료하겠습니다.");
                break;
                
            }
            else {
                for(int i = 0; i < eng.length; i++) {
                    if(s.equals(eng[i])) {
                        System.out.println(kor[i]);
                        break;
                    }
                    
                    else if(!s.equals(eng[i]) && i == 4)
                    System.out.println("잘모르겠습니다.");
                    
                }
                
            }
            
        }
            
    }
}
 
cs

7. 1부터 99까지, 369게임에서 박수를 쳐야 하는 경우 순서대로 화면에 출력하라

2장 실습문제 9번을 참고하라.

 

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
package com.example;
 
import java.util.Scanner;
 
public class study_01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        for(int i = 1; i < 100; i++) {
            int first = i/ 10;
            int second = i % 10;
            int count = 0;
            if(first == 3 || first == 6 || first == 9)
                count++;
                if(second == 3 || second == 6 || second == 9)
                    count++;
                switch(count) {
                case 1System.out.println(i + "박수한번"); break;
                case 2System.out.println(i + "박수두번"); break;
                }
            }
            
        }
    }
 
 
cs

8. 컴퓨터와 사용자의 가위바위보 게임 프로그램을 작성하라.

사용자가 입력하고 <Enter>키를 치면, 컴퓨터는 랜덤하게 가위, 바위, 보 중에 하나를 선택한다.

그리고 누가 이겼는지 출력하며 "그만"을 입력시에는 게임을 종료한다.

 

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
46
47
48
49
50
51
52
53
54
55
56
57
package com.example;
 
import java.util.Scanner;
 
public class study_01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        String result[] = {"가위""바위""보"};
        System.out.println("컴퓨터와 가위바위보 ");
        
        
        while(true) {
            System.out.print("가위 바위 보!!!!");
            String user = scanner.next();
            
            int computer = (int)(Math.random() * 3);
            if(user.equals("그만")) {
                System.out.println("종료하겠습니다.");
                break;
            }
            else if(result[computer].equals("가위")) {
                if(user.equals("가위")) {
                    System.out.println("사용자 = 가위, 컴퓨터 = 가위, 비겼습니다.");
                }
                else if(user.equals("바위")) {
                    System.out.println("사용자 = 바위, 컴퓨터 = 가위, 사용자가 이겼습니다.");
                }
                else if(user.equals("보")) {
                    System.out.println("사용자 = 보, 컴퓨터 = 가위, 컴퓨터가 이겼습니다.");
                }
            }
            else if(result[computer].equals("바위")) {
                if(user.equals("가위")) {
                    System.out.println("사용자 = 가위, 컴퓨터 = 바위, 컴퓨터가 이겼습니다.");
                }
                else if(user.equals("바위")) {
                    System.out.println("사용자 = 바위, 컴퓨터 = 바위, 비겼습니다.");
                }
                else if(user.equals("보")) {
                    System.out.println("사용자 = 보, 컴퓨터 = 바위, 사용자가 이겼습니다.");
                }
            }
            else if(result[computer].equals("보")) {
                if(user.equals("가위")) {
                    System.out.println("사용자 = 가위, 컴퓨터 = 보, 사용자가 이겼습니다.");
                }
                else if(user.equals("바위")) {
                    System.out.println("사용자 = 바위, 컴퓨터 = 보, 컴퓨터가 이겼습니다.");
                }
                else if(user.equals("보")) {
                    System.out.println("사용자 = 보, 컴퓨터 = 보, 비겼습니다.");
                }
            }
        }
    }
}
cs

보너스 문제1. 다음은 3 * 4의 2차원 배열을 만들고 이곳에 0~9범위의

정수를 랜덤하게 저장한 후 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
28
29
30
31
32
33
34
35
package com.example;
 
import java.util.Scanner;
 
public class study_01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        int intArry[][] = new int[3][4];
        for(int i = 0; i < 3; i ++) {
            for(int j = 0; j< 4; j++) {
                intArry[i][j] = (int)(Math.random()*10);
                
            }
        }
        for(int i = 0; i < intArry.length; i++) {
            for(int j = 0; j < intArry[i].length; j++) {
                System.out.print(intArry[i][j] + " ");
                
            }
            System.out.println();
        }
        int i = 0;
        int sum = 0;
        
        while(i < 3) {
            for(int j = 0; j < 4; j++) {
                sum += intArry[i][j];
                
            }
            i++;
        }
        System.out.println("총합은 " + sum);
    }
}
cs
반응형