<A와 B의 교환 알고리즘 방법>
임시변수<-> A <-> B
1. 임시변수에 A값을 넣는다.
2. A의 값에 B를 넣는다.
3. 1번에서 만든 임시변수 값을(A) B에 넣는다.
ex)
int room = lotto[0]; // 임시변수에 A값(0번째)을 넣는다.
lotto[0] = lotto[com]; // A의 값에 B를 넣는다.
lotto[com] = room; // B의 값은 1번에서 만든 임시변수 값이다.
------------------------------------------------------------
<2차원 배열 array>
int [] [] c = new int [3] [4] // 3행4열을 의미
array [3] [4] = 9; // 3행4열에 9라는 숫자가 들어가 있다.
array [3]; // 3행 전체를 의미
2차원 배열에서는 행열을 다 돌아야하므로 for문이 2개가 필요하다.
안에 for 반복문 (하나의 행 안에서 열을 도는 것)
밖에 for 반복문 (하나의 열 안에서 행을 도는 것)
2차원에서 .length는 행수를 의미 (열수 아님)
2차원에서 c[i].length는 열수를 의미
int [][] c = new int [3][4];
for (int i=0; i<c.length; i++) { //행 수 만큼 반복
for (int j=0; j<c[i].length; j++) { // 한 행의 열 수 만큼 반복
}
}
------------------------------------------------------------
<연습문제>
// 문제 : 6개의 랜덤 로또 번호를 생성해라.
// 풀이 :
// 1. 45개의 로또 숫자가 들어갈 방을 생성
// 2. 로또 배열 1~45까지 넣어라.
// 3. 2000개 숫자중 임의의 방 번호를 추출하기 (int)(Math.random()*45)// 0~44까지 추출하는 함수 사용
// 4. 첫번째 방(값) 고정해놓고 random함수로 발생된 수의 방의 값을 교환하기
// 5. 로또배열 0부터 5개까지 (앞에서부터 6개의 요소를 출력)
// 답 :
// 문제 : 3행4열을 출력하는데,
c 배열의 i번째 행과 j번째 열에 i+1 값을 할당하여 뽑아내라.
// 풀이 :
// 답 :
// 문제 : 3행 4열을 순차적으로 숫자를 뽑아내 보아라.
// 풀이 :
// 숫자를 저장할 변수 num을 선언하고, 초기값을 1로 설정
// 2차원 배열의 각 요소에 값을 저장하고 출력할 거임
// 2차원 배열의 행을 도는 반복문을 만들고
// 2차원 배열의 열을 도는 반복문을 만들고
// 2차원 배열의 i번째행 j번째열에 num의 값을 저장하는데, num은 num++를 통해 증가함.
// 그 이후에 2차원 배열의 i번째 행 j번째 열의 값을 출력
// 답 :
// 문제 : 3행4열의 0번째 열의 합과 1번째 열의 합을 구하시오
// 풀이 :
// col (column 열)
// 답 :
0번째 열의 합 = 15
1번째 열의 합 = 18
// 문제 : 3행4열의 0번째 열의 합과 1번째 열의 합을 구하시오.
그리고 0번째 행의 합과 1번째 행의 합과 2번째 행의 합도 구하시오.
// 풀이 :
// 답 :
0번째 열의 합 = 15
1번째 열의 합 = 18
0번째 행의 합 = 10
1번째 행의 합 = 26
2번째 행의 합 = 42
'JAVA' 카테고리의 다른 글
<JAVA_PreClass_231017화> (0) | 2023.10.17 |
---|---|
<JAVA_PreClass_231016월> (0) | 2023.10.16 |
<JAVA_PreClass_231012목> (2) | 2023.10.12 |
<JAVA_PreClass_231011수> (2) | 2023.10.11 |
<JAVA_PreClass_231010화> (0) | 2023.10.10 |