공부 일지
kh정보 교육원 11, 12 일차 본문
얕은 복사 , 깊은 복사
배열을 만들어 쓰다가 인덱스의 길이가 더 필요하면 새로운 배열을 만들어 인덱스를 더 넓게 생성해서 복사를 해줘야 한다.
2차원 배열 !
int [] arr = new int [4] // 이건 1차원 배열
int [][] arr = new int [4][4] // 이게 2차원 배열
내가 만약 int [][] arr = new int [3][4] 를 만들었다면
이런식으로 생성이 된다 그림 ㅋㅋㅋㅋ
그래서 for 문을 쓸 때 for i = 0; i < arr.length; i++ 을 하면 행을 순회하는것이고 중첩 행 안의 열을 순회하고 싶다면
for int j = 0; j < arr[행].length; j++ 을 해준다
i 와 j 가 0부터 시작하는 이유는 배열의 첫번째 자리가 0의 자리이기 때문!
따라서 첫번째 행의 첫번째 열을 한번 순회하고 i++로 i는 1이 되어 [0][3]에서 [1][0]으로 넘어간다
1행의 3열을 순회하고 다시 2행으로 넘어가며 3열도 순회하면 종료.
exception , try , catch 다시 배워야함
난수
랜덤 유틸? 스캐너 처럼 import를 해야한다
int num = rand.nextInt(10) // 0부터 10까지 랜덤 숫자를 생성한다
하지만 문제 풀땐 전부 Math.random() 을 쓴것같다 // 강제 타입변환으로 알파벳으로 나오게 할수도 있다!
정렬
삽입정렬
선택정렬
버블정렬
퀵정렬
병합정렬 이 있다 근데 아직 버블정렬까지 못들었다 아마 버블정렬이 제일 쉬워서 저거만 쓸듯..?
복사와 비슷한 원리다 변수를 하나 선언해서 값을 넣어두고 for문으로 옮기는 너낌~
int [] arr = {2,5,4,1,3};
for (int i = 0; i < arr.length-1;i++)
for (int j = 0; j = (arr.length-1)-i; j++)
if (arr[j] > arr[j+1]) // 왼자리 수가 오른자리 수보다 크다면
int tmp = arr[j+1] // 임시변수에 오른자리 수를 넣어두고
arr[j+1] = arr[j] // 오른자리 수가 있던 자리에 왼자리 수를 넣고
arr[j] = tmp; // 왼자리 수가 있던 자리에 임시변수에 넣었던 오른자리 수를 넣는다!!
휴
그림 실력도 늘려야겠다.
'국비지원 > JAVA' 카테고리의 다른 글
OOP 클래스와 객체 정리 (0) | 2024.06.21 |
---|---|
kh 정보교육원 15일차 (0) | 2024.05.29 |
kh 정보 교육원 13,14일차 (0) | 2024.05.28 |
kh 정보 교육원 9,10 일차 (0) | 2024.05.22 |
kh정보교육원 7,8일차 (2) | 2024.05.20 |