목차 클래스 사용 이유 사용자 정의 자료형 사용 1. 클래스 사용 이유 앞서 데이터를 저장하는 방법으로 배운 변수와 배열은 다음과 같은 특징이 있다: 예컨대 변수는 하나의 공간에 하나의 값을 저장한다. 배열은 같은 자료형의 값만을 취급할 수 있다. 이는 곧 데이터 관리 측면에서 단점을 낳기도 한다. 관리해야 하는 대상이 늘어날수록 사용자(개발자)가 변수명을 일일이 알고 다뤄야 한다는 번거로움이 따른다. 메소드 호출 시 전달인자가 그만큼 많아져 단번에 파악하기 어렵게 된다. 또한, 메소드에서 return;은 1개의 값만을 보낼 수 있기에 필요로 하는 정보 타입만큼의 메소드를 하나하나 만들어 리턴값을 배부해야 하기에 비효율적이다. 이 같은 이유에서 서로 다른 자료형 데이터를 사용자 정의의 새로운 타입으로 정..
Quiz 1. 크기가 5인 int형 배열에 for문 활용해 10~14 정수로 초기화하기 index 값이 0부터 시작하는 것을 활용해서 출력한다. package com.reminder.array_quiz; public class ArrayQuiz01 { public static void main(String[] args) { int[] arr = new int[5]; for(int i=0; i < arr.length; i++) { arr[i] = 10 + i; System.out.println(arr[i]); } } } 10 11 12 13 14 Quiz 2. 2차원 배열과 for문으로 2단~9단 구구단 출력하기 문제 조건에 따라 i, j 둘 다 0부터 시작하되 곱하는 값에서 2단부터 +2, 숫자 1부터 ..
목차 배열의 복사 1-1. 얕은 복사 1-2. 깊은 복사 1-3. 향상된 for문 배열의 정렬 2-1. 순차정렬 2-2. Arrays.sort() 사용 1. 배열 복사 1-1. 얕은 복사(shallow copy) stack 영역에서 레퍼런스 변수간에 배열 주소값 복사만 발생한 경우를 말한다. 같은 주소값을 참조하는 레퍼런스 변수가 하나 더 생겼을 뿐이다. int[] originArr = {1, 2, 3, 4, 5}; int[] copyArr = originArr; stack heap static originArr (주소값 0x123) copyArr (주소값 0x123) {1, 2, 3, 4, 5} (주소값 0x123) 레퍼런스 주소값 확인을 통해 원본과 복사본이 동일한 주소를 가지고 있음을 알 수 있다...
✅ 답안과 비교하여 스스로 코드 개선점 짚어보기 완료(2022.01.02) 1. 배열 BASIC1. ✅ 값 대입하는 for문 하나, 출력하는 for문 하나 따로 쓴다. int value라는 별도 변수를 선언하지 않고 arr[i] = i + 1; 처럼 식을 세울 수 있다. int[] iarr = new int[10]; /* 선언 및 할당 */ for(int i=0; i < iarr.length; i++) { iarr[i] = i+1; } /* 출력 */ for(int i=0; i < iarr.length; i++) { System.out.print(iarr[i] + " "); } package com.greedy.section01.array.level01.basic; public class Applicat..
목차 배열 사용 이유 배열의 저장 구조(hashCode, length) 1차원 배열 3-1. 배열 선언 3-2. 배열 할당(배열 재할당, 배열의 회수) 3-3. 배열 초기화 다차원 배열 4-1. 2차원 배열 선언 4-2. 2차원 배열 할당(정변배열, 가변배열) 4-3. 2차원 배열 초기화 배열 예제 1. 배열 사용 이유 배열(array)은 같은 자료형의 변수들을 하나의 묶음으로 다루는 것이다. 배열은 저장된 값마다 index 번호가 부여된다. 즉, 연속된 메모리 공간에 값을 저장하고 이를 불러와 사용할 수 있는 것이다. 1-1. 연속된 메모리 공간으로 관리할 수 있다. 각각의 변수는 값을 1개씩만 담을 수 있다. 사용자(개발자)가 모든 변수의 이름을 알아야만 한다. int var1 = 3; int var..
✅ 답안과 비교하여 스스로 코드 개선점 짚어보기 완료(2021.12.30) ADVANCED2. ✅ package com.greedy.section02.looping_and_branching.level04.advanced; import java.util.Scanner; public class Application2 { public static void main(String[] args) { /* 받은 금액을 입력 받고, 상품 가격을 입력 받아 거스름돈을 계산하는 프로그램을 작성하세요 * * 단, 거스름돈은 대한민국 화폐 단위 별 필요 수량이 출력되도록 작성하고, * 지폐외 동전을 구분하여 단위를 표기하세요 * * -- 입력 예시 -- * 받으신 금액을 입력하세요 : 100000 * 상품 가격을 입력하세요 ..
🧩 학습 단원 : 연산자(Operator) 📚 학습 도서 : (남궁 성 저) ✅ 오답 정리 완료(2021.12.25) [3-1] 다음 연산의 결과를 적으시오. ❎ int x = 2; int y = 5; char c = 'A'; // 'A'의 문자코드는 65 System.out.println(1 + x 쉬프트 연산자이므로 3 = 5 || x 2); && 연산자가 먼저 수행되어서 false였지만 y는 5라서 최종적으로 true System.out.println(y += 10 - x++); y = y + 10 - x++;라는 식이므로 y = 13, x = 3으로 마쳐짐 y = y + (10 - x++);이 정확하다! System.out.println(x+=2); x = x + 2라는 식이니..