다라다라V
article thumbnail
728x90
반응형

💡 

Scanner 클래스를 이용하여 원화를 입력받아 달러로 바꾸어 다음 예시와 같이 출력하는 프로그램을 작성하라. $1=1100원으로 가정하고 계산하라

 

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성
        Scanner scanner = new Scanner(System.in);
        // 입력받기
        System.out.println("원화를 입력하세요(단위 원)>>");
        int won = scanner.nextInt();
        // 원화를 달러로 변환
        double dollar = won / 1100.0;
        // 결과 출력
        System.out.println(won + "원은 $" + dollar + "입니다.");
    }
}

 

💡 

Scanner 클래스를 이용하여 2자리의 정수(1099사이) 입력받고, 십의 자리와 1 자리가 같은지 판별하여 출력하는 프로그램을 작성하라

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);
        System.out.println("2자리 정수 입력(10~99)");
        int num = scanner.nextInt();
        
        // 입력받은 수의 자리수 비교하기
        if (num % 10 == num / 10) {
            System.out.println("Yes! 10의 자리와 1의 자리가 같습니다.");
        } else {
            System.out.println("No! 10의 자리와 1의 자리가 다릅니다.");
        }
    }
}

 

 

💡 

Scanner 클래스를 이용하여 정수로 돈의 액수를 입력받아 오만 원권, 원권, 원권, 500원짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1 원짜리 동 개로 변환되는지 출력하라

 

[정답] 

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);
        System.out.println("금액을 입력하세요>>");
        int num = scanner.nextInt();
        
        // 금액에 맞게 동전의 개수를 계산
        System.out.println("오만원권 " + num / 50000 + "매");
        num = num % 50000;
        System.out.println("만원권 " + num / 10000 + "매");
        num = num % 10000;
        System.out.println("천원권 " + num / 1000 + "매");
        num = num % 1000;
        System.out.println("백원 " + num / 100 + "개");
        num = num % 100;
        System.out.println("십원 " + num / 10 + "개");
        num = num % 10;
        System.out.println("일원 " + num + "개");
    }
}

 

 

💡 

Scanner 클래스로 정수 3개를 입력받고 3개의 숫자 중 중간 크기의 수를 출력하라. 평균값을 구하는 것이 아님에 주의하라

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);
        // int arr[] = new int[3] -> 배열은 배우지 않아 참고용으로만 작성
        
        // 정수 3개 입력받기
        System.out.println("정수 3개 입력>>");
        int num1 = scanner.nextInt();
        int num2 = scanner.nextInt();
        int num3 = scanner.nextInt();
        
        // 각 숫자를 비교하여 중간 값 찾기
        int mid = 0;
        if (num1 > num2) {
            if (num2 > num3) {
                mid = num2;
            } else if (num1 > num3) {
                mid = num3;
            } else {
                mid = num1;
            }
        } else {
            if (num1 > num3) {
                mid = num1;
            } else if (num2 > num3) {
                mid = num3;
            } else {
                mid = num2;
            }
        }
        
    }
}


[해설]

배열을 배우면 더 간단하고 간결한 코드로 작성할 수 있습니다.

 

💡 

Scanner를 이용하여 삼각형의 변의 길이를 나타내는 정수를 3 입력받고 3개의 수로 삼각형을 만들 있는지 판별하라. 삼각형이 되려면 변의 합이 다른 변의 합보다 커야 한다.

 

[정답] 

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);
        // int arr[] = new int[3] -> 배열은 배우지 않아 참고용으로만 작성

        // 정수 3개 입력받기
        System.out.println("정수 3개 입력>>");
        int num1 = scanner.nextInt();
        int num2 = scanner.nextInt();
        int num3 = scanner.nextInt();

        // 삼각형이 되는지 판단
        if (num1 + num2 > num3 && num2 + num3 > num1 && num3 + num1 > num2) {
            System.out.println("삼각형이 됩니다.");
        } else {
            System.out.println("삼각형이 안됩니다.");
        }
    }
}

 

 

💡 

369게임을 간단히 작성해보자. 1 99까지의 정수를 입력받고 정수에 3. 6. 9 하나 있는 경우는 "박수짝짝" 출력하고 있는 경우는 박수짝짝 출력하는 프로그램을 작성하라. 예를 들면, 키보드로 입력된 수가 13 경우 "박수짝"을, 36 경우, "박수짝짝" 출력하면 된다.

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);
        System.out.print("1~99 사이의 정수를 입력하시오>>");
        int num = scanner.nextInt();

        // 박수 횟수를 저장
        int clap = 0;
        while (num > 0) {
            if (num % 10 == 3 || num % 10 == 6 || num % 10 == 9) {
                clap++;
            }
            num /= 10;
        }

        // 박수 횟수 출력
        if (clap > 0) {
            System.out.print("박수");
            for (int i = 0; i < clap; i++) {
                System.out.print("짝");
            }
            System.out.println();
        } else {
            System.out.println("박수 없음");
        }
    }
}


[해설]

1~99이기에 따로 일의 자리와 십의 자리만 비교해도 되지만, 더 활용성 좋은 코드 작성을 위해 박수 횟수를 따로 저장했습니다.

 

💡 

2차원 평면에서 직사각형은 왼쪽 상단 모서리와 오른쪽 하단 모서리의 점으로 현한다. (100, 100) (200, 200) 점으로 이루어진 사각형이 있을 , Scanner 이용하여 정수 x y 값을 입력받고 (x, y) 직사각형 안에 있는지를 판별하는 프로그램을 작성하라.

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);

        // 점 x, y 좌표 입력받기
        System.out.print("점 (x,y)의 좌표를 입력하시오>>");
        int x = scanner.nextInt();
        int y = scanner.nextInt();

        // 점이 (100, 100), (200, 200)의 내부에 있는지 판별
        if ((x >= 100 && x <= 200) && (y >= 100 && y <= 200)) {
            System.out.println("(" + x + "," + y + ")은 사각형 내부에 있습니다.");
        } else {
            System.out.println("(" + x + "," + y + ")은 사각형 내부에 없습니다.");
        }
    }
}


[해설]

 

💡 

2차원 평면에서 직사각형은 문제 7번처럼 점으로 표현된다. 키보드로부터 직사각형을 구성하는 (x1, y1), (x2, y2) 입력받아 (100, 100), (200, 200) 점으로 이루어진 직사각형과 충돌하는지 판별하는 프로그램을 작성하라.

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);

        // 판별하련는 점 x, y 좌표 입력받기
        System.out.print("점 (x,y)의 좌표를 입력하시오>>");
        int x = scanner.nextInt();
        int y = scanner.nextInt();

        // 문제에서 주어진 inRect를 이용해 점이 사각형 안에 있는지 확인
        if (inRect(x, y, 100, 100, 200, 200)) {
            System.out.println("("+x+", "+y+")는 사각형 안에 있습니다.");
        } else {
            System.out.println("("+x+", "+y+")는 사각형 안에 없습니다.");
        }
    }

    public static boolean inRect(int x, int y, int rectx1, int recty1, int rectx2, int recty2) {
        if (( x>=rectx1 && x<=rectx2 ) && ( y>=recty1 && y<=recty2 ))
            return true;
        else return false;
    }
}

 

💡 

원의 중심을 나타내는 점과 반지름을 실수 값으로 력받아라. 그리고 실수 값으로 다른 (X. y) 입력받아 점이 원의 내부에 있는지 판별하여 출력하라.

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);

        // 원 중심과 반지름 입력
        System.out.print("원의 중심과 반지름을 입력>>");
        int centerX = scanner.nextInt();
        int centerY = scanner.nextInt();
        double radius = scanner.nextDouble();

        // 점 입력
        System.out.print("점 입력>>");
        double x = scanner.nextDouble();
        double y = scanner.nextDouble();

        // 점이 원 안에 있는지 판단
        if ((centerX - x) * (centerX - x) + (centerY - y) * (centerY - y) < radius * radius) {
            System.out.println("점 (" + x + ", " + y + ")는 원 안에 있다.");
        } else {
            System.out.println("점 (" + x + ", " + y + ")는 원 안에 없다.");
        }
    }
}

 

 

 

💡 

원의 정보를 받기 위해 키보드로부터 원의 중심을 나타내는 점과 반지름을 입력받는다. 개의 원을 입력받고 원이 서로 겹치는지 판단하여 출력하라.

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);

        // 첫 번째 원의 중심과 반지름 입력
        System.out.print("첫 번째 원의 중심과 반지름 입력>>");
        int x1 = scanner.nextInt();
        int y1 = scanner.nextInt();
        int r1 = scanner.nextInt();
        
        // 두 번째 원의 중심과 반지름 입력
        System.out.print("두 번째 원의 중심과 반지름 입력>>");
        int x2 = scanner.nextInt();
        int y2 = scanner.nextInt();
        int r2 = scanner.nextInt();
        
        // 두 원이 서로 겹치는지 판단
        if (Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)) < r1 + r2) {
            System.out.println("두 원은 서로 겹친다.");
        } else {
            System.out.println("두 원은 서로 겹치지 않는다.");
        }
    }
}

 

 

💡 

숫자를 입력받아 35 "봄", 68 "여름", 9 11 은 "가을", 12,1,2 경우 "겨울", 숫자를 입력한 경우 잘못입 출력하는 프로그램을 작성하라.

 

(1) if-else 문을 이용하여 프로그램을 작성하라

(2) switch 문을 이용하여 프로그램을 작성하라

 

[정답] 

(1)

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);

        // 판별해야하는 달을 입력
        System.out.println("달을 입력하세요(1~12)>>");
        int month = scanner.nextInt();
        
        // 계절을 if-else 문을 이용해 판별
        if (month == 3 || month == 4 || month == 5) {
            System.out.println("봄");
        } else if (month == 6 || month == 7 || month == 8) {
            System.out.println("여름");
        } else if (month == 9 || month == 10 || month == 11) {
            System.out.println("가을");
        } else if (month == 12 || month == 1 || month == 2) {
            System.out.println("겨울");
        } else {
            System.out.println("잘못입력");
        }
    }
}

 

(2)

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);

        // 판별해야하는 달을 입력
        System.out.println("달을 입력하세요(1~12)>>");
        int month = scanner.nextInt();

        // 계절을 switch 문을 이용해 판별
        switch (month) {
            case 3:
            case 4:
            case 5:
                System.out.println("봄");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("여름");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("가을");
                break;
            case 12:
            case 1:
            case 2:
                System.out.println("겨울");
                break;
            default:
                System.out.println("잘못입력");
        }
    }
}

 

💡 

사칙 연산을 입력받아 계산하는 프로그램을 작성하고자 한다. 연산자는 +, =, *, / 가지로 하고 연산자는 모두 실수로 한다.

연산자와 연산자는 실행 사례와 같이 칸으로 분리하여 입력한다. 0으로 나누기 "0으로 나눌 없습니다." 출력하

종료한다

 

(1) 연산 식을 구분할 if-else 문을 이용하여 프로그램을 작성하라.

(2) 연산 식을 구분할 switch 문을 이용하여 프로그램을 작성하라.

 

[정답] 

(1)

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);

        // 연산을 입력 받음 (띄어쓰기로 분리)
        // ex. 2 + 3
        System.out.print("연산>>");
        int num1 = scanner.nextInt();
        String op = scanner.next();
        int num2 = scanner.nextInt();

        // if-else 문을 이용해 연산자에 따라 연산 수행
        int result = 0;
        if (op.equals("+")) {
            result = num1 + num2;
        } else if (op.equals("-")) {
            result = num1 - num2;
        } else if (op.equals("*")) {
            result = num1 * num2;
        } else if (op.equals("/")) {
            if (num2 == 0) {
                System.out.println("0으로 나눌 수 없습니다.");
                return;
            }
            result = num1 / num2;
        } else {
            System.out.println("연산자를 잘못 입력하셨습니다.");
        }
        System.out.println(num1 + op + num2 + "의 계산 결과는 " + result + "입니다.");
    }
}

(2)

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 입력 받기위한 스캐너 생성 후 입력받기
        Scanner scanner = new Scanner(System.in);

        // 연산을 입력 받음 (띄어쓰기로 분리)
        // ex. 2 + 3
        System.out.print("연산>>");
        int num1 = scanner.nextInt();
        String op = scanner.next();
        int num2 = scanner.nextInt();

        // switch 문을 이용해 연산자에 따라 연산 수행
        int result = 0;
        switch (op) {
            case "+":
                result = num1 + num2;
                break;
            case "-":
                result = num1 - num2;
                break;
            case "*":
                result = num1 * num2;
                break;
            case "/":
                if (num2 == 0) {
                    System.out.println("0으로 나눌 수 없습니다.");
                    return;
                }
                result = num1 / num2;
                break;
            default:
                System.out.println("연산자를 잘못 입력하셨습니다.");
                return;
        }
        System.out.println(num1 + op + num2 + "의 계산 결과는 " + result);
    }
}

 

반응형
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!