[Coding Test] book(2)

박찬영·2024년 1월 30일

Coding Test

목록 보기
3/41

20번) 구구단의 결과를 2차원 배열에 저장

20-1) java 코드

public class Main {
    public static void main(String[] args) {
        int[][] aa = new int[9][9];

        for (int i = 0; i < 9; i++) {
            for (int k = 0; k < 9; k++) {
                aa[k][i] = (i + 1) * (k + 1);
                System.out.printf("%d X %d = %2d\t", k + 1, i + 1, aa[k][i]);
            }
            System.out.println();
        }
    }
}

20-2) 실행 결과


21번) 3차원 배열을 활용한 합계

21-1) java 코드

public class Main {
    public static void main(String[] args) {
        int[][][] aaa = new int[10][10][10];
        int value = 1, result = 0;

        for (int i = 0; i < 10; i++) {
            for (int k = 0; k < 10; k++) {
                for (int r = 0; r < 10; r++) {
                    aaa[i][k][r] = value++;
                    result += aaa[i][k][r];
                }
            }
        }
        System.out.printf("1~1000까지 합계 : %d", result);
    }
}

21-2) 실행 결과


실습 8-12번) 배열을 활용한 스택

8-12-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        char[] stack = new char[5];
        int i;
        int top = 0;
        char name = 'A';

        while (true) {
            System.out.print(" <1> 자동차 넣기 <2> 자동차 빼기 <3> 끝 : ");
            i = s.nextInt();

            if (i == 1) {
                if (top >= 5) {
                    System.out.println("터널이 꽉 차서 차가 못 들어감\n");
                } else {
                    stack[top] = name++;
                    System.out.printf("%c 자동차가 터널에 들어감\n", stack[top]);
                    top++;
                }
            }

            if (i == 2) {
                if (top <= 0) {
                    System.out.println("빠져나갈 자동차가 없음\n");
                } else {
                    top--;
                    name--;
                    System.out.printf("%c 자동차가 터널에서 빠짐\n", stack[top]);
                }
            }

            if (i == 3) {
                System.out.printf("현재 터널에 %d대가 있음.\n", top);
                System.out.println("프로그램을 종료합니다.");
                break;
            }

            if (i != 1 && i != 2 && i != 3) {
                System.out.println("잘못 입력했습니다. 다시 입력하세요.");
            }
        }
    }
}

8-12-2) 실행 결과


22번) 배열을 활용한 큐

22-1) java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        char[] que = new char[5];
        char name = 'A';
        int rear = 0;
        int num = 9;

        while (num != 3) {
            System.out.print("<1> 자동차 넣기 <2> 자동차 빼기 <3> 끝 : ");
            num = s.nextInt();

            switch (num) {
                case 1:
                    if (rear >= 5) {
                        System.out.println("터널이 꽉 차서 차가 못 들어감");
                    } else {
                        que[rear] = name++;
                        System.out.printf("%c 자동차가 터널에 들어감\n", que[rear]);
                        rear++;
                    }
                    break;
                case 2:
                    if (rear <= 0) {
                        System.out.println("빠져나갈 자동차가 없음");
                    } else {
                        System.out.printf("%c 자동차가 터널에서 빠짐\n", que[0]);
                        que[0] = ' ';
                        rear--;
                        for (int i = 0; i < rear; i++) {
                            char a = que[i + 1];
                            que[i] = a;
                        }
                    }
                    break;
                case 3:
                    System.out.printf("현재 터널에 %d대가 있음.\n", rear);
                    System.out.println("프로그램을 종료합니다.");
                    break;
                default:
                    System.out.println("잘못 입력했습니다. 다시 입력하세요.");
            }
        }
    }
}

22-2) 실행 결과


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

23-1) java 코드

import java.util.Scanner;

public class Main {
    static void reverse(String str) {
        char ch;
        System.out.print("내용을 거꾸로 출력 ==> ");
        for (int i = str.length() - 1; i >= 0; i--) {
            ch = str.charAt(i);
            System.out.printf("%c", ch);
        }
    }

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String str;
        System.out.print("문자열을 입력하세요 : ");
        str = s.nextLine();
        reverse(str);
    }
}

23-2) 실행 결과


24번) 대문자와 소문자의 변환

24-1) java 코드

import java.util.Scanner;

public class Main {
    static void reverse(String str) {    //A => 65, a => 97   둘 차이는 32
        char ch;
        System.out.print("변환된 문자열 ==> ");

        for (int i = 0; i < str.length(); i++) {
            ch = str.charAt(i);
            if ((ch >= 'A') && (ch <= 'Z')) {
                ch += 32;
                System.out.printf("%c", ch);
            } else if ((ch >= 'a') && (ch <= 'z')) {
                ch -= 32;
                System.out.printf("%c", ch);
            } else {
                System.out.printf("%c", ch);
            }
        }
    }

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

        System.out.print("문자열을 입력하세요 : ");
        str = s.nextLine();
        reverse(str);
    }
}

24-2) 실행 결과


25번) 로또 숫자 자동 추첨

25-1) java 코드

public class Main {
    static short getNumber() {
        return (short) (Math.random() * 45 + 1);
    }

    public static void main(String[] args) {
        short[] lotto = {0, 0, 0, 0, 0, 0};
        short num;
        char ch = 'N';
        System.out.println("**\t로또 추첨을 시작합니다.\t**");
        for (int i = 0; i < 6; ) {
            num = getNumber();

            for (int k = 0; k <= i; k++) {
                if (lotto[k] == num) {
                    ch = 'Y';
                }
            }
            if (ch == 'Y') {
                ch = 'N';
            } else if (ch == 'N') {
                lotto[i++] = num;
            }
        }
        System.out.print("추첨된 로또 번호 ==> ");
        for (int i = 0; i < 6; i++) {
            System.out.printf("%d\t", lotto[i]);
        }
    }
}

25-2) 실행 결과


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

0개의 댓글