[Coding Test] book(1)

박찬영·2024년 1월 29일

Coding Test

목록 보기
2/41

1번) 숫자4개를 더하는 프로그램

1-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int a, b, c, d;     // 입력받을 변수 4개를 선언한다.
        int result;         // 결과값 변수 선언

        Scanner s = new Scanner(System.in);

        System.out.println("첫번째 계산할 값을 입력하세요 ==>");
        a = s.nextInt();

        System.out.println("두번째 계산할 값을 입력하세요 ==>");
        b = s.nextInt();

        System.out.println("세번째 계산할 값을 입력하세요 ==>");
        c = s.nextInt();

        System.out.println("네번째 계산할 값을 입력하세요 ==>");
        d = s.nextInt();

        result = a + b + c + d;

        System.out.println(a + "+" + b + "+" + c + "+" + d + "=" + result);
    }
}

1-2) 실행 결과


2번) 숫자4개를 더하는 프로그램

2-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        int a, b, c;    // c는 연산자를 선택할 변수
        int result;     // 계산 방식을 선택할 변수를 선언

        System.out.println("첫번째 계산할 값을 입력하세요 ==>");
        a = s.nextInt();    // 계산할 숫자를 입력

        System.out.println("<1>덧셈 <2>뺄셈 <3>곱셈 <4>나눗셈 ==>");
        c = s.nextInt();    // 연산자 선택

        System.out.println("두번째 계산할 값을 입력하세요==>");
        b = s.nextInt();    // 계산할 숫자를 입력

        if (c == 1) {           // 입력한 c가 1이면 덧셈을 수행
            result = a + b;
            System.out.println(a + "+" + b + "=" + result);
        } else if (c == 2) {    // 입력한 c가 2이면 뺄셈을 수행
            result = a - b;
            System.out.println(a + "-" + b + "=" + result);
        } else if (c == 3) {    // 입력한 c가 3이면 곱셈을 수행
            result = a * b;
            System.out.println(a + "*" + b + "=" + result);
        } else if (c == 4){     // 입력한 c가 4이면 나눗셈을 수행
            result = a / b;
            System.out.println(a + "/" + b + "=" + result);
        } else {                // 입력한 c가 1,2,3,4 중에 없으면 잘못입력 출력
            System.out.println("숫자를 잘못 입력하였습니다");
        }
    }
}

2-2) 실행 결과


3번) 오류 없는 계산기

3-1) java 코드

import java.io.IOException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner s = new Scanner(System.in);

        int a, b;
        int result;     // 계산 방식을 선택할 변수를 선언
        char c;         // 연산자를 입력받을 변수를 문자형으로 선언

        System.out.println("첫번째 계산할 값을 입력하세요 ==>");
        a = s.nextInt();                // 계산할 숫자를 입력

        System.out.println("+ - * / % ==>");
        c = (char)System.in.read();    // 연산자를 입력

        System.out.println("두번째 계산할 값을 입력하세요==>");
        b = s.nextInt();                // 계산할 숫자를 입력

        if (c == '+') {
            result = a + b;
            System.out.println(a + "+" + b + "=" + result);
        } else if (c == '-') {
            result = a - b;
            System.out.println(a + "-" + b + "=" + result);
        } else if (c == '*') {
            result = a * b;
            System.out.println(a + "*" + b + "=" + result);
        } else if (c == '/'){
            if (b==0){
                System.out.println("0으로 나누면 안됩니다.");
            } else{
                result = a / b;
                System.out.println(a + "/" + b + "=" + result);
            }
        } else if (c == '%'){
            if (b==0){
                System.out.println("0으로 나누면 나머지 값이 안됩니다.");
            } else{
                result = a % b;
                System.out.println(a + "%" + b + "=" + result);
            }
        } else {
            System.out.println("연산자를 잘못 입력하였습니다");
        }
    }
}

3-2) 실행 결과


4번) 정수형을 출력하는 프로그램

4-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        int a;              // 정수형 변수를 선언한다.

        System.out.println("정수를 입력하세요 ==>");
        a = s.nextInt();    // 키보드로 정수를 입력받는다.

        System.out.printf("10진수 ==> %d\n", a);
        System.out.printf("16진수 ==> %x\n", a);
        System.out.printf("8진수 ==> %o\n", a);
    }
}

4-2) 실행 결과


5번) 입력하는 정수의 진수 결정

5-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int num, data = 0;      // data는 입력받지 않기 때문에 초기화를 해줘야한다.
        String str;             // 문자열 형태에서 정수형으로 바꾸기 위해 문자열 변수를 선언한다.

        System.out.println("입력진수 결정 <1>10 <2>16 <3>8 : ");  // 진수 결정
        num = s.nextInt();

        System.out.println("값 입력 :");
        if (num == 1) {
            str = s.next();     // 문자열 형태로 입력 받는다.
            data = Integer.parseInt(str, 10);   // 문자열에서 정수형 10진수로 변경
        } else if (num == 2) {
            str = s.next();
            data = Integer.parseInt(str, 16);   // 문자열에서 정수형 16진수로 변경
        } else if (num == 3) {
            str = s.next();
            data = Integer.parseInt(str, 8);    // 문자열에서 정수형 8진수로 변경
        } else {
            System.out.println("잘못 입력하였습니다.");
        }

        System.out.printf("10진수 ==> %d\n", data);
        System.out.printf("16진수 ==> %x\n", data);
        System.out.printf("8진수 ==> %o\n", data);
    }
}

5-2) 실행 결과


6번) 데이터형의 크기 확인

6-1) java 코드

public class Main {
    public static void main(String[] args) {
        System.out.printf("byte 형의 크기               ==>%d\n", Byte.SIZE);
        System.out.printf("short 형의 크기              ==>%d\n", Short.SIZE);
        System.out.printf("int 형의 크기                ==>%d\n", Integer.SIZE);
        System.out.printf("long 형의 크기               ==>%d\n", Long.SIZE);
        System.out.printf("float 형의 크기              ==>%d\n", Float.SIZE);
        System.out.printf("double 형의 크기             ==>%d\n", Double.SIZE);
        System.out.printf("char 형의 크기               ==>%d\n", Character.SIZE);
    }
}

6-2) 실행 결과


7번) 입력된 문자열을 거꾸로 출력

7-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String str;
        char ch;

        System.out.print("문자열을 입력 ==>");
        str = s.nextLine();                          // 문자열이기 때문에 s.next()가 아닌 s.nextLine()으로 입력받는다.

        for (int i = str.length() - 1; i > 0; i--) { // 문자열의 길이를 받아 뒤에서부터 입력을 받는다.
            ch = str.charAt(i);                      // String 형태에서 char 형태로 변환한다.
            System.out.printf("%c", ch);             // 문자 하나하나씩 출력한다.
        }
    }
}

7-2) 실행 결과


8번) 입력된 두 실수의 산술 연산

8-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        float a, b;

        System.out.print("첫번째 계산할 값을 입력하세요 ==> ");
        a = s.nextFloat();          // 실수를 입력받아야하기 때문에 s.nextFloat()를 사용한다.

        System.out.print("두번째 계산할 값을 입력하세요 ==> ");
        b = s.nextFloat();

        System.out.printf("%.2f + %.2f = %.2f\n", a, b, a + b);
        System.out.printf("%.2f - %.2f = %.2f\n", a, b, a - b);
        System.out.printf("%.2f * %.2f = %.2f\n", a, b, a * b);
        System.out.printf("%.2f / %.2f = %.2f\n", a, b, a / b);
        System.out.printf("%d %% %d = %d\n", (int) a, (int) b, (int) a % (int) b); // 강제 형변환
    }
}

8-2) 실행 결과


9번) 동전 교환 프로그램

9-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int money;

        System.out.print("## 교환할 돈은 ? ");
        money = s.nextInt();

        System.out.printf("오백원짜리 ==> %d 개\n", money/500);
        System.out.printf("백원짜리 ==> %d 개\n", money%500/100);
        System.out.printf("오십원짜리 ==> %d 개\n", money%500%100/50);
        System.out.printf("십원짜리 ==> %d 개\n", money%500%100%50/10);
        System.out.printf("바꾸지 못한 잔돈 ==> %d 개\n", money%500%100%50%10);
    }
}

9-2) 실행 결과


10번) 윤년 계산 프로그램

10-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int num;

        System.out.print("연도를 입력하세요 : ");
        num = s.nextInt();

        if ((num % 4 == 0 && num % 100 != 0) || (num % 400 == 0)) {
            System.out.printf("%d 년은 운년입니다.\n", num);
        } else {
            System.out.printf("%d 년은 운년이 아닙니다.\n", num);
        }
    }
}

10-2) 실행 결과


12번) 중복if문을 활용한 간단한 계산기 (11번 포함)

12-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int a, b, result = 0;
        char ch;

        System.out.print("첫번째 수를 입력하세요 : ");
        a = s.nextInt();

        System.out.print("계산할 연산자를 입력하세요 : ");
        ch = s.next().charAt(0);        // String 형태에서 char 형태로 바로 변환

        System.out.print("두번째 수를 입력하세요 : ");
        b = s.nextInt();

        if (ch == '+') {
            result = a + b;
        } else if (ch == '-') {
            result = a - b;
        } else if (ch == '*') {
            result = a * b;
        } else if (ch == '/') {
            result = a / b;
        } else if (ch == '%') {
            result = a % b;
        } else {
            System.out.println("연산자를 잘못 입력했습니다.");
        }

        System.out.printf("%d %s %d = %d 입니다.\n", a, ch, b, result);
    }
}

12-2) 실행 결과


13번) switch~case 문을 활용한 간단한 계산기

13-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String[] str;	// 문자열 배열 준비 -> 입력된 수식을 str[0], str[1], str[2]에 분리하기 위함
        int a, b;
        char ch;

        System.out.print("수식을 한줄로 띄어쓰기로 입력하세요 : ");
        str = s.nextLine().split(" ");  // split(" ")을 이용하여 문자열을 공백으로 분리한다.
        a = Integer.parseInt(str[0]);   // 문자열 str[0]을 정수로 변환한다.
        ch = str[1].charAt(0);          // 문자열 str[1]의 첫 번째 글자만 추출하여 ch에 저장한다.
        b = Integer.parseInt(str[2]);   // 문자열 str[2]을 정수로 변환한다.

        switch (ch) {
            case '+':
                System.out.printf("%d + %d = %d", a, b, a + b);
                break;
            case '-':
                System.out.printf("%d - %d = %d", a, b, a - b);
                break;
            case '*':
                System.out.printf("%d * %d = %d", a, b, a * b);
                break;
            case '/':
                System.out.printf("%d / %d = %f", a, b, a / (float)b);
                break;
            case '%':
                System.out.printf("%d %% %d = %d", a, b, a % b);
                break;
            default:
                System.out.println("연산자를 잘못 입력했습니다.");
        }
    }
}

13-2) 실행 결과


14번) 구구단 출력

14-1) java 코드

public class Main {
    public static void main(String[] args) {
        for (int i = 2; i < 10; i++) {
            System.out.printf("  #제%d단#\t", i); // 제목 출력
        }
        System.out.println();                    // 한줄 띄운다.

        for (int i = 1; i < 10; i++) {
            for (int k = 2; k < 10; k++) {
                System.out.printf("%3d X %d = %2d", k, i, k * i);
            }
            System.out.println();
        }
    }
}

14-2) 실행 결과


15번) 아스키코드표 출력

15-1) java 코드

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 128; i++) {
            if (i % 16 == 0) {       // 16행마다 제목 줄을 출력한다.
                System.out.println("---------------------");
                System.out.println("10진수\t 16진수\t 문자");
                System.out.println("---------------------");
            }
            System.out.printf("%3d\t\t %3x\t %2c\n", i, i, i);
        }
    }
}

15-2) 실행 결과


16번) 입력된 문자를 거꾸로 출력

16-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String str;
        char ch;

        System.out.print("글자를 입력 : ");
        str = s.nextLine();

        System.out.println();
        System.out.printf("입력한 문자열 ==> %s\n", str);
        System.out.print("변환된 문자열 ==> ");

        for (int i = str.length() - 1; i >= 0; i--) {
            ch = str.charAt(i);
            System.out.printf("%c", ch);
        }
    }
}

16-2) 실행 결과


17번) 원하는 배수의 합계를 구하는 계산기

17-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int a, b, c, i;
        int result = 0;

        System.out.print("합계의 시작값 ==> ");
        a = s.nextInt();

        System.out.print("합계의 끝값 ==> ");
        b = s.nextInt();

        System.out.print("배수 ==> ");
        c = s.nextInt();

        i = a;
        while (i <= b) {
            if (i % c == 0) {
                result += i;
            }
            i++;
        }
        System.out.printf("%d부터 %d까지의 %d배수의 합계 ==> %d\n", a, b, c, result);
    }
}

17-2) 실행 결과


18번) 입력한 문자열의 종류 구분

18-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String str;
        char ch;
        int a = 0, b = 0, c = 0;

        System.out.print("문자열을 입력 : ");
        str = s.nextLine();

        int i = 0;
        do {
            ch = str.charAt(i);

            if (ch >= 'A' && ch <= 'Z') {
                a++;
            } else if (ch >= 'a' && ch <= 'z') {
                b++;
            } else if (ch >= '0' && ch <= '9') {
                c++;
            }
            i++;
        } while (i < str.length());

        System.out.printf("대문자 %d개, 소문자 %d개, 숫자 %d개", a, b, c);
    }
}

18-2) 실행 결과


19번) 입력한 숫자만큼 별표 출력

19-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String str;
        char ch;

        System.out.print("숫자를 여러 개 입력 : ");
        str = s.nextLine();

        int i = 0;
        do {
            ch = str.charAt(i);
            int num = (int) ch - 48; // 문자를 숫자로 변환한다. (변환전에는 아스키코드가 들어가있다.)
            for (int k = 0; k < num; k++) {
                System.out.print("*");
            }
            System.out.println();
            i++;
        } while (i < str.length());
    }
}

19-2) 실행 결과

profile
블로그 이전했습니다 -> https://young-code.tistory.com

0개의 댓글