| English | 의미 |
|---|---|
| data structure/ˈdeɪtə ˈstrʌktʃə/ | 데이터 구조 |
| array/əˈreɪ/ | 배열 |
여러 값, 하나의 이름
- 종종 여러 개의 값을 저장해야 합니다. 전체 학급의 점수나 이름 목록 등.
- 단일 변수는 하나의 값을 저장하지만, **데이터 구조(data structure)**는 **모집합(collection)**을 저장합니다.
- 하나의 이름(
scores)에 인덱스(index) 또는 위치를 추가하여 각 값에 접근할 수 있습니다. - 모집합은 반복문(loop)을 사용하여 모든 값을 한 번에 처리할 수 있게 해줍니다.
배열과 리스트
- **배열(array)**은 고정 크기의 값 모음이며, 모두 **동일한 유형(same type)**이어야 합니다.
- ArrayList은 확장 가능한 리스트입니다. 값을 추가하거나 제거함에 따라 크기가 커지거나 작아질 수 있습니다.
- 두 구조 모두 하나의 이름 아래에 여러 값을 저장하고, 이들을 순회할 수 있게 합니다.
- 4단원에서는 이 둘 위에 알고리즘을 구축합니다.
반복문이 모집합을 선호하는 이유
- 모집합 + 반복문은 거의 모든 데이터 작업의 핵심 패턴입니다.
- "모든 점수를 더하기", "가장 큰 값 찾기", "통관(pass) 횟수 세기" — 모두 하나의 반복문으로 해결됩니다.
- 2단원에서 배운 accumulator/max/count 패턴이 그대로 적용됩니다.
- 모집합이 없으면 각 값마다 별도의 변수가 필요합니다.
1차원에서 2차원으로
- 1차원 collection은 값들의 단순한 줄입니다.
- 2차원 배열은 그리드(grid) (행과 열)를 저장합니다. 스프레드시트나 보드 게임판과 같습니다.
- 중첩 반복문(nested loops, 2단원)은 2D 그리드를 traversal합니다.
- 4단원에서는 배열, ArrayList, 2D 배열을 순서대로 다룹니다.
모집합은 여러 값을 저장하지만, 여전히 위치를 통해 각각에 접근해야 합니다. 배열에서는 인덱스(index) (scores[i]); ArrayList에서는 get(i)입니다. 적절한 구조를 선택하세요: 개수가 알려진 경우 고정 크기(fixed-size) 배열, 커지거나 작아지는 경우 ArrayList. 반복문(l looping)이 collection을 강력하게 만듭니다.
시험 점수 저장:
- 하나의 값:
int score = 85;— 학생 한 명만. - 모집합:
int[] scores = {85, 90, 78};— 한 학급 전체를 하나의 이름으로. - 반복문을 사용하여 모두를 합계, 평균 내거나 검색할 수 있습니다.
데이터 구조는 **모집합(collection)**을 하나의 이름 아래에 저장하며, 인덱스(index) 또는 위치를 통해 접근하므로 **반복문(loop)**으로 모두 처리할 수 있습니다. 배열(array) 은 고정 크기와 동일 유형; ArrayList은 확장 가능합니다. 4단원에서는 배열, ArrayList, 2D 배열 위 알고리즘을 구축합니다.
하나의 이름 아래에 있는 값들의 모음
스코어는 여러 값을 포함하며; 인덱스는 각 값을 접근합니다.
하나의 이름 아래에 같은 타입의 여러 값을 저장하는 구조는...입니다
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
배열은 고정된 크기와 같은 타입을 가진 모음입니다
요소를 추가하거나 제거할 때 크기가变大하고变小할 수 있는 구조는 무엇인가요?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
ArrayList은 가변 크기이며, 일반 배열은 고정된 크기입니다
거의 모든 데이터 작업의 패턴은 모음과 ...입니다
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
루프는 모음의 모든 값을 처리합니다
2차원 배열은 행과 열의 격자 형태로 값을 저장합니다
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
스프레드시트 또는 보드판과 유사하며; 중첩 루프가 이를 순회합니다
배열의 ___(한 단어, 위치 번호)으로 값을 접근합니다
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
인덱스는 배열 내 값의 위치입니다