Back-End/Java

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

CJun 2021. 5. 12. 17:18
반응형

1. 두 정수를 입력을 받아 합을 구하여 출력하는 프로그램을 작성하라.

단, 키보드 입력은 Scanner 클래스를 이용하라.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package java0407;
 
import java.util.Scanner;
 
public class Ex1 {
 
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        int a, b;
        System.out.print("두 정수를 입력하시오. ");
        a = scanner.nextInt();
        b = scanner.nextInt();
        
        System.out.println("두 정수의 합은: " + (a + b) + "입니다.");
        
    }
}
 
cs

 

2. 한 층의 높이가 5m일 때, 건물이 몇층인지 높이를 받아서 높이를 출력하라.

 

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);
        int floor;
        int height = 5;
        System.out.print("몇층인지 입력하시오. ");
        floor = scanner.nextInt();
        
        System.out.println((floor * height) + "m 입니다.");
        
    }
}
 
cs

3. x값을 받아 y = x^2 - 3x + 7 식을 계산하여 y값을 출력하는 프로그램을 작성하라.

 

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);
        int x, y;
        System.out.print("x 값을 입력하시오. ");
        x = scanner.nextInt();
        y = x * x -3 * x + 7;
        
        System.out.println("x는 " + x + "\n" + "y는 " + y);
        
    }
}
 
cs

4. 2차원 평면에서 하나의 직사각형은 두 점으로 표현된다.

(50, 50)과 (100, 100)의 두 점으로 이루어진 사각형이 있다고 하자.

한 점을 구성하는 정수 x와 y값을 입력받고

점(x,y)가 이 직사각형 안에 있는지를 판별하는 프로그램을 작성하라

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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("점 (x, y)의 좌표를 입력하시오. ");
 
    int x, y;
    x = scanner.nextInt();
    y = scanner.nextInt();
 
    if((x >= 50 && x <= 100&& (y >= 50 && y <= 100))
    System.out.println("점(" + x + "," + y + ")" + "은 (50, 50) 과 (100, 100)의 사각형 내에 있습니다.");
    else
    System.out.println("점(" + x + "," + y + ")" + "은 (50, 50) 과 (100, 100)의 사각형 내에 없습니다.");
 
    }
}
 
cs

5. 다음과 같이 AND와 OR의 논리 연산을 입력받아 결과를 출력하는 프로그램을 작성하라.

예를 들어 'true AND false'의 결과로 false를, 'true OR false'의 결과를 true를 출력하면 된다.

단 if문 대신 switch문을 이용하라

 

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("논리 연산을 입력하시오. ");
    boolean x = scanner.nextBoolean();
    String operation = scanner.next();
    boolean y = scanner.nextBoolean();
    
    switch(operation) {
    case"AND"System.out.println(x&y); break;
    case"OR"System.out.println(x|y); break;
    defaultSystem.out.println("입력이 잘못되었습니다.");
    }
    
    }
}
 
cs

6. 돈의 액수를 입력받아서 오만원권, 만원권, 천원권,

500원짜리 동전, 100원짜리 동전, 10원짜리 동전, 1원짜리 동전 각 몇개로 변환되는지 출력하라

 

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
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("돈을 입력하세요. ");
    int money = scanner.nextInt();
    System.out.printf("오만원 %d장" ,money / 50000);
    money %= 50000;
    System.out.printf(", 만원 %d장", money / 10000);
    money %= 10000;
    System.out.printf(", 천원 %d장", money / 1000);
    money %= 1000;
    System.out.printf(", 500원 %d개", money / 500);
    money %= 500;
    System.out.printf(", 100원 %d개", money / 100);
    money %= 100;
    System.out.printf(", 10원 %d개", money / 10);
    money %= 10;
    System.out.printf(", 1원 %d개", money / 1);
    
 
    }
}
 
cs

7. 학점이 A 또는 B이면 "Excellent", 학점이 C 또는 D이면 "Good",

학점이 F이면 "Bye"라고 출력하는 프로그램을 작성하라 단, switch와 break를 활용하라

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 grade = scanner.next();
    switch(grade) {
    case"A":
    case"B":
        System.out.println("Excellent"); break;
    case"C":
    case"D":
        System.out.println("Good"); break;
    default:
        System.out.println("Bye"); break;
    }
 
    }
}
 
cs

8. 음료수 종류와 잔의 개수를 입력받으면 가격을 알려주는 프로그램을 작성하라.

단, 에스프레소는 2000원, 아메리카노 2500원, 카푸치노 3000원, 카페라떼 3500원이다.

 

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 {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.print("주문해주세요. ");
    String a = scanner.next();
    
    System.out.print("몇잔 드실겁니까? ");
    int b = scanner.nextInt();
    
    if(a.equals("에스프레소")) {
        System.out.println("에스프레소 " + b + "잔의 가격은 " + 2000 * b + "원입니다.");
    }
    else if(a.equals("아메리카노")) {
        System.out.println("아메리카노 " + b + "잔의 가격은 " + 2500 * b + "원입니다.");
        }
    else if(a.equals("카푸치노")) {
        System.out.println("카푸치노 " + b + "잔의 가격은 " + 3000 * b + "원입니다.");
        }
    else if(a.equals("카페라떼")) {
        System.out.println("카페라떼 " + b + "잔의 가격은 " + 3500 * b + "원입니다.");
    }
    }
}
 
cs

9. 369게임의 일부를 작성해보자. 1~99까지의 정수를 입력받고

수에 3,6,9중 하나가 있는 경우는 "박수짝",

두개 있는 경우는 "박수짝짝", 하나도 없으면

"박수없음"을 출력하는 프로그램을 작성하라

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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("1~99 사이의 정수를 입력하세요. ");
    int number = scanner.nextInt();
    int first = number / 10;
    int second = number % 10;
    int count = 0;
    
    if(first == 3 || first == 6 || first == 9) count++;
    if(second == 3 || second == 6 || second == 9) count++;
    
    switch(count) {
    case 0System.out.println("박수없음");break;
    case 1System.out.println("박수짝"); break;
    case 2System.out.println("박수짝짝"); break;
    }
    
    }
}
 
cs

10. 실습 문제 8번을 변형해서 에스프레소는 2000원,

아메리카노 2500원, 카푸치노 3000원, 카페라떼 3500원이며

에스프소의 경우는 10잔 이상 주문하면 가격의 5%를 할인해준다.

 

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
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();
    
    System.out.print("몇잔 드실겁니까? ");
    int b = scanner.nextInt();
    
    if(a.equals("에스프레소")) {
        if(b <= 9) {
        System.out.println("에스프레소 " + b + "잔의 가격은 " + 2000 * b + "원입니다.");
        }
        else {
        System.out.println("에스프레소 " + b + "잔의 가격은 " + (int)(2000 * b * 0.95+ "원입니다.");
        }
    }
    else if(a.equals("아메리카노")) {
        System.out.println("아메리카노 " + b + "잔의 가격은 " + 2500 * b + "원입니다.");
        }
    else if(a.equals("카푸치노")) {
        System.out.println("카푸치노 " + b + "잔의 가격은 " + 3000 * b + "원입니다.");
        }
    else if(a.equals("카페라떼")) {
        System.out.println("카페라떼 " + b + "잔의 가격은 " + 3500 * b + "원입니다.");
    }
    }
}
cs
반응형