배열

    [자바의 정석] 연습문제. 거스름돈 원화 단위별 출력하기 (배열)

    이전 수업 때 거스름돈을 단위별로 출력하는 문제를 배열없이 반복문으로 해결하는 문제를 받았을 때 풀지 못했는데 ㅠ 배열 파트에 들어가고 나서 자바의 정석 연습문제로 다시 만난 이 문제 배열로는 쉽게 풀 수 있었다!! 배열없이 반복문, 조건문으로 풀 때 내가 캐치하지 못한 건, 거스름돈이 50000원 으로 시작했다면, 처음엔 5로 나누어 10000원을 만들고, 그 다음번엔 2로 나누어 5000원 이런 식으로 거스름돈의 원화 단위를 나누는 방법을 생각 못함. 코드로 정리하면 이런 식으로 만들어서 거스름돈을 출력하는 것. //동전의 단위를 바꾸기 위한 변수 선언. int i = 0 ; //처음엔 5로 나누고, 다음엔 2로 나누고를 홀/짝 반복. if ( i% 2 == 0 ){ coinUnit / 5 ; } e..

    [Java] day9. 배열을 복사하는 방법 얕은복사/깊은 복사

    배열의 복사 배열의 복사에는 크게 두가지 종류가 있다. 1. 얕은 복사 (shallow copy) : 스택의 주소값만 복사 얕은 복사는 스택에 저장되어 있는 배열의 주소값만 복사한다는 것이다. 따라서 두개의 래퍼런스 변수는 동일한 배열의 주소값을 가지고 있다. 하나의 래퍼런스 변수에 저장된 주소값을 가지고 배열의 내용을 수정(값 변경)을 하게되면 다른 레퍼런스 변수로 배열을 접근했을 때도 동일한 배열을 가리키고 있기 때문에 변경된 값이 반영되어 있다. /*얕은 복사를 확인할 원본 배열 생성*/ int[] originArr = {1,2,3,4,5}; /*카피할 배열*/ int[] copyArr = originArr; /* hashcode를 출력해보면 두 개의 래퍼런스 변수는 동일한 주소를 가지고 있는 것을..

    Java 문제풀이 4-4. 학생들 분단 나누기. 다차원 배열 문제

    문제 /* 길이 12의 문자열 배열을 생성하여 12명의 학생들을 출석부 순으로 1차원 배열에 할당하고, * 2열 3행 2차원 배열을 2개 할당하여 각 1분단 2분단이라고 칭한다. * 순차적으로 1분단 부터, 왼쪽부터 오른쪽, 1행에서 아래 행으로 번호 순으로 자리를 배치하고 출력하세요*/ * -- 출력 예시 -- * == 1분단 == * 홍길동 이순신 * 유관순 윤봉길 * 장영실 임꺽정 * * == 2분단 == * 장보고 이태백 * 김정희 대조영 * 김유신 이사부 */ 작성한 코드) String[] sarr = {"홍길동","이순신","유관순","윤봉길","장영실" ,"임꺽정","장보고","이태백","김정희","대조영","김유신","이사부"}; String[][] student1 =new String[2..

    Java 문제풀이 4-3. 이차원 배열로 랜덤 영문자 출력하기.

    문제 /* 가로와 세로 길이를 정수형으로 입력 받아 입력받은 가로 세로 길이를 이용하여 * 이차원 배열을 할당하고 각 인덱스에는 랜덤으로 알파벳 대문자 넣어서 출력 * * 단, 가로 행 혹은 세로 열은 반드시 1~10 까지의 정수를 입력해야 하고 그렇지 않은 경우에는 * "반드시 1~10까지의 정수를 입력해야 합니다. 다시 입력하세요." 출력 후 * 가로 행 또는 세로 열을 다시 입력받을 수 있도록 한다. * * -- 입력 예시 -- * 가로 행의 수를 입력하세요 : 5 * 세로 열의 수를 입력하세요 : 4 * * -- 출력 예시 -- * F H Z G * W F O T * O R X V * W H J X * W S S J */ 작성한 코드) while(true) { Scanner sc = new Sca..

    Java 문제풀이 4-2. 주민등록번호 뒷자리 숨기기

    문제 /* 주민등록번호를 스캐너로 입력 받고 문자 배열로 저장한 뒤, * 성별 자리 이후부터 *로 가려서 출력하세요 * * -- 입력 예시 -- * 주민등록번호를 입력하세요 : 990101-1234567 * * -- 출력 예시 -- * 990101-1****** */ 작성한 코드 ) char[] carr = sc.nextLine().toCharArray(); 구문을 사용하여 출력하였음. Scanner sc = new Scanner(System.in); System.out.print("주민등록번호를 입력하세요 : "); char[] carr = sc.nextLine().toCharArray(); String sum =""; for (int i = 0; i ..

    Java 문제풀이 4-1. 문자열을 입력받아 배열에 저장하고 문자 검색하기.

    문제) /* 문자열을 하나 입력받아 문자 자료형 배열로 바꾼 뒤 * 검색할 문자를 하나 입력 받아 * 입력 받은 검색할 문자가 문자열에 몇개 있는지를 출력하세요 * * -- 입력 예시 -- * 문자열을 하나 입력하세요 : helloworld * 검색할 문자를 입력하세요 : l * * -- 출력 예시 -- * 입력하신 문자열 helloworld에서 찾으시는 문자 l은 3개 입니다. * */ (String Class의 toCharArray() : char[] 메소드 활용 가능 char[] carr = 문자열변수.toCharArray(); 와 같이 사용 작성한 코드) Scanner sc = new Scanner(System.in); System.out.print("문자열을 하나 입력하세요 : "); Strin..

    [Java] day8. 배열

    배열 ( Array ) 같은 자료형의 변수들을 하나의 묶음으로 다루는 것 배열은 저장된 값 마다 인덱스 번호가 부여됨. (0부터 시작) 배열은 heap 영영에 new 연산자를 이용하여 할당한다. 배열의 사용 이유 만약 배열을 사용하지 않는다면 변수를 여러 개 사용해야한다. 연속된 메모리 공간으로 관리할 수 없다. (모든 변수의 이름을 사용자가 관리해야 한다.) 반복문을 이용한 연속 처리가 불가능하다. 배열 선언 - 선언은 stack에 배열의 주소를 보관할 수 있는 공간을 만드는 것이다. 자료형[] 배열명; 자료형 배열명[]; 선언한 래퍼런스 변수에 배열을 할당하여 대입할 수 있다. new 연산자는 heap영역에 공간을 할당하고 발생한 주소값을 반환하는 연산자이다. 발생한 주소를 래퍼런스 변수 (참조형변수..