[ 배열 정렬 ]
package jun12;
import java.util.Arrays;
public class Test01 {
public static void main(String[] args) {
// 배열정렬
// 앞뒤 숫자두개 비교후 작은숫자 앞으로_배열끝까지 & while로 과정 반복
int[] a = {75, 95, 85, 100, 50};
int temp;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length-1; j++) {
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//print
System.out.println(Arrays.toString(a));
}
}
// j = 0 {75 85 95 100 50}
// j = 1 {75 85 95 50 100}
// j = 2 {75 85 50 95 100}
// j = 3 {75 50 85 95 100}
// j = 4 {50 75 85 95 100}
[50, 75, 85, 95, 100]
package jun12;
import java.util.Arrays;
public class Test02 {
public static void main(String[] args) {
int[] a = {75, 95, 85, 100, 50};
int temp;
// 5 1 4 3 2
while(a[0] > a[1] || a[1] > a[2] || a[2] > a[3] || a[3] > a[4]) {
for (int j = 0; j < a.length-1; j++) {
System.out.println("실행합니다.");
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//print
System.out.println(Arrays.toString(a));
}
}
// j = 1 {75 85 95 100 50}
// j = 4 {75 85 95 50 100}
// j = 2 {75 85 50 95 100}
// j = 1 {75 50 85 95 100}
// j = 0 {50 75 85 95 100}
실행합니다.
....
실행합니다. X 16개
[50, 75, 85, 95, 100]
[ 배열 + 랜덤숫자넣기 ]
(1)
package jun12;
import java.util.Arrays;
import java.util.Iterator;
// 3X3 배열에 1~9까지 숫자 랜덤하게 입력하기
public class Sam {
public static void main(String[] args) {
int[][] sam = new int[3][3];
/*
[0, 0] [0, 1] [0, 2]
[1, 0] [1, 1] [1, 2]
[2, 0] [2, 1] [2, 2]
*/
int num = 1;
for (int i = 0; i < sam.length; i++) { // 값을 넣어주기 위한 for문
for (int j = 0; j < sam[i].length; j++) {
int temp = (int) (Math.random() * 9) + 1;
System.out.println("뽑은 숫자 : " + temp);
//boolean 변수로 확인해보기로 변경
boolean check = false;
check: for (int k = 0; k < sam.length; k++) { // 중복검사를 위한 for문 (check)
for (int k2 = 0; k2 < sam[i].length; k2++) {
if(temp == sam[k][k2]){
check = true;
break check; // [0 0] vs [0 0] [1 0] vs [0 0] [0 1]
} // [0 1] vs [0 0] [1 0] [1 1]
} // [0 2] vs [0 0][0 1]
}// 검사 for문
if(check) { // boolean검사
j--; // 다시 뽑기
} else {
sam[i][j] = temp; // 입력해주기
}
} // for문끝
}
// print
for (int[] is : sam) {
System.out.println(Arrays.toString(is));
}
}
}
(2)
package jun12;
import java.util.Arrays;
// 다른 모양
public class Sam02 {
public static void main(String[] args) {
int[][] sam = new int[3][3];
int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 입력숫자
// 입력숫자에서 랜덤하게 한 숫자를 뽑아 00부터 22까지
// 순차 입력하고 뽑힌 입력 숫자는 0으로 바꾸기
// 입력 숫자 뽑기에서 0이면 다시 뽑기
for (int i = 0; i < sam.length; i++) {
for (int j = 0; j < sam[i].length; j++) {
int temp = 0; // temp는 배열 number의 index
do {
temp = (int) (Math.random() * 9); // 0~8
} while (number[temp] == 0);
sam[i][j] = number[temp]; // 저장하기
number[temp] = 0; // 중복 방지하기 위해서
} // 내부측
} // 배열 외부측
for (int[] is : sam) {
System.out.println(Arrays.toString(is));
}
}
}
(3)
package jun12;
import java.util.Arrays;
public class Sam03 {
public static void main(String[] args) {
int[][] sam = new int[3][3];
// index를 뽑아서 해당 위치에 1~9 순차적으로 입력하기
for (int i = 0; i < 10; i++) {
int r1 = (int) (Math.random() * 3);
int r2 = (int) (Math.random() * 3);
if(sam[r1][r2] == 0) {
sam[r1][r2] = i;
} else {
i--;
}
}
for (int[] is : sam) {
System.out.println(Arrays.toString(is));
}
}
}
'국비과정 > JAVA (기초)' 카테고리의 다른 글
20230613 _[8일차]_01. 연습문제 * (0) | 2023.06.13 |
---|---|
20230612 _[7일차]_05. 2차원배열 문제들 * (0) | 2023.06.13 |
20230612 _[7일차]_03. Do ~ While문 (0) | 2023.06.13 |
20230612 _[7일차]_03. While문 (0) | 2023.06.13 |
20230612 _[7일차]_02. break, continue (0) | 2023.06.12 |