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) {
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) 실행 결과
