초록꼬마의 devlog
article thumbnail

2021.10.21(목)

🌿 배열(Array)

🌱 개념

  • 하나의 공간에, "같은 자료형의" 여러 개의 값들을 담을 수 있음
  • 배열 선언 시 앞에 자료형 써줘야 함
  • 배열 = 순서가 있는 공간 → 순서가 있음 = index가 있음 → index가 있는 공간/칸이 만들어짐
  • 배열의 각 index("색인, 목록") 자리에 실제 값이 담김 → index = 배열의 각 방
  • index는 0부터 시작 + 같은 크기로 만듦

Q. 배열을 사용하는 이유

🌱 선언 및 할당

  • 배열 할당 = 이 배열에 몇 개의 값이 들어갈지/index 몇 개 쓸지/공간 몇 개 필요한지, 배열의 크기를 정해주는 과정 → 지정한 갯수만큼 값이 들어갈 공간이 만들어짐

🌱 값 대입

  • 배열의 각 index 자리에 값 대입
  • 배열이름[index값] = 대입하고자 하는 값;

🌱 활용 예제

  • 주어진 수 중 최대/소값 찾기

Q. 한 번 정한/초기화한 배열의 크기는 왜 변경할 수 없는가?
Q. 배열의 크기를 늘리고 싶다면 어떻게 해야 하는가? → A. 배열을 다시 만들어야 함 = 할당 다시 하기 = 배열의 이름만 가져다 씀 = 더 큰 배열을 새로 생성한 다음, 기존의 배열에 저장된 값들을 새로운 배열에 복사

🌱 재할당

🌿 주소값

  • 기본 자료형 vs 참조 자료형
  • 실제 값을 바로 담을 수 있는 변수, 일반 변수 vs 실제 값이 저장되어있는 주소값을 담고 있는 변수, 참조(reference) 변수

🌿 null

  • 의미 = "주소에는 아무 것도 없어" "'아무 주소도 없다'고 씌여있음" "주소값이 없다" "아무 것도 존재하지 않음"(을 의미하는 null이 있음) != 아무 것도 없는, 텅텅 비어있는 것

 

출처: https://i.ytimg.com/vi/Fj-cmQ55J5Y/maxresdefault.jpg

 

📗 소감

  • 수업 마지막에 배열 복사 부분부터 멘붕이었다. 강사님의 설명을 들을 때 주소 값, 변수 같은 기본 개념을 내가 정확히 이해하고 있지 않다는 것을 깨달았다.
  • 수업 내용 + Java의 정석 책 보며 복습, 보충 학습 필수!

📗 homework: 배열 및 제어문

  1. 10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고,
    1~10 사이의 난수를 발생시켜 배열에 초기화 후,
    배열 전체 값과 그 값 중에서 최대값과 최소값을 출력 → 수업 시간에 배운 내용 활용해서 쉽게 풀 수 있었음
  2. 로또 번호 자동 생성기 프로그램을 작성하는데 중복 값 없이 출력하세요 → 로또 번호 반복 체크하는 중첩if문 조건을 생각해내는데 약간의 고민이 필요했으나, 각 i별로 체크해야 하는 index 숫자 등 연습장에 쓰고 그려보며 아주 어렵지는 않게 찾아낼 수 있었음(30분 이내 소요)
  3. 문자열을 입력 받아 문자열에 어떤 문자가 들어갔는지 배열에 저장하고 문자의 개수와 함께 출력
    e.g. 문자열 : application → 문자열에 있는 문자 : a, p, l, i, c, t, o, n → 중복되지 않는 문자 개수 : 8 (= 입력받은 문자열의 길이 - 중복된 문자의 갯수)
    → 결국 못 풀었다.. 사용된 문자를 스트링이나 배열에 쌓고 싶은데, 중복 없이 어떻게 쌓아야 되는지 아직 못 찾았다. 잘 때도 생각나고 일어나서도 생각난다, 어서 풀고 싶다 ㅠㅠ