package des08;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
//3*3배열을 만들어주시고 1~9까지 데이터를 랜덤하게 입력해주세요.
public class MultiArray03 {
public static void main(String[] args) {
*내가한 것*
int arr[][] = new int[3][3];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = (int) (Math.random() * 9 + 1);
}
}
System.out.println(Arrays.deepToString(arr));
[[6, 7, 1], [4, 1, 8], [9, 5, 6]]
=> 중복 있음 , 중복없이 만들어야한다.
*중복없이 만든 것
int sam[][] = new int[3][3];
for (int i = 0; i < sam.length; i++) {
B: for (int j = 0; j < sam[i].length; j++) {
int temp = (int) (Math.random() * 9 + 1); //중복 검사하기 위해 temp변수 사용
// 중복검사
for (int k = 0; k < sam.length; k++) {
for (int k2 = 0; k2 < sam[i].length; k2++) {
if (sam[k][k2] == temp) {
//
// System.out.println(i+ ":" +j+"중복발생 : " + temp);
j--;
// break A;
continue B;
}
}
} // 중복검사
sam[i][j] = temp;
}
}
for (int[] is : sam) {
System.out.println(Arrays.toString(is));
}
[5, 2, 3]
[8, 7, 1]
[9, 6, 4]
도저히 이해할 수 없어서 지선생이 알려준거 퍼왔다.
주어진 코드는 중복 없이 1부터 9까지의 난수를 가진 3x3 크기의 2차원 배열 sam을 생성하는 예제입니다. 코드의 실행 흐름을 간략히 설명하면 다음과 같습니다:
- int sam[][] = new int[3][3];: 3x3 크기의 2차원 배열 sam을 생성합니다.
- for (int i = 0; i < sam.length; i++) {: 배열의 각 행에 대한 반복문이 시작됩니다.
- B: for (int j = 0; j < sam[i].length; j++) {: 현재 행에 대한 두 번째 반복문이 시작됩니다. 이 반복문은 현재 행의 각 열에 대한 난수를 생성하고 중복 여부를 검사합니다.
- int temp = (int) (Math.random() * 9 + 1);: 1부터 9 사이의 난수를 생성하고 이를 변수 temp에 저장합니다.
- 중복 검사를 위한 이중 반복문:
- for (int k = 0; k < sam.length; k++) {: 모든 행에 대해 검사합니다.
- for (int k2 = 0; k2 < sam[i].length; k2++) {: 현재 행의 각 열에 대해 검사합니다.
- if (sam[k][k2] == temp) { j--; continue B; }: 생성된 난수 temp가 이미 배열에 존재하는 경우, 현재 열에 대한 다시 시도를 위해 j--를 하고 레이블 B로 이동하여 외부 루프에서의 반복을 계속합니다.
- sam[i][j] = temp;: 중복이 없는 경우에 난수를 배열에 할당합니다.
- 외부 루프를 통해 모든 행과 열에 대한 난수 할당이 완료되면, 배열의 내용을 출력합니다.
- for (int[] is : sam) { System.out.println(Arrays.toString(is)); }: 배열 sam의 내용을 출력합니다.
이렇게 하면 3x3 크기의 배열에 중복 없는 난수가 할당되어 출력됩니다.
'2023.11.21-2024.05.31' 카테고리의 다른 글
1208JAVA -While01 (0) | 2023.12.08 |
---|---|
1208JAVA -MultiArray04 (0) | 2023.12.08 |
1208JAVA -MultiArray02 (0) | 2023.12.08 |
1208JAVA -MultiArray01 (0) | 2023.12.08 |
1208JAVA -Test01 (0) | 2023.12.08 |