You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
5.2 KiB
115 lines
5.2 KiB
# 배열과 반복문 과제
|
|
|
|
## 지침
|
|
|
|
배열과 반복문 작업을 연습하기 위해 다음 연습문제를 완료하세요. 각 연습문제는 수업의 개념을 기반으로 하며 다양한 반복문 유형과 배열 메서드를 적용하도록 권장합니다.
|
|
|
|
### 연습문제 1: 숫자 패턴 생성기
|
|
1부터 20까지의 숫자 중에서 3번째 숫자마다 나열하여 콘솔에 출력하는 프로그램을 작성하세요.
|
|
|
|
**요구사항:**
|
|
- 사용자 정의 증감이 있는 `for` 반복문 사용
|
|
- 사용자 친화적인 형식으로 숫자 표시
|
|
- 논리를 설명하는 상세한 주석 추가
|
|
|
|
**기대 출력:**
|
|
```
|
|
3, 6, 9, 12, 15, 18
|
|
```
|
|
|
|
> **팁:** for 반복문에서 반복 식을 수정하여 숫자를 건너뛰세요.
|
|
|
|
### 연습문제 2: 배열 분석
|
|
최소 8개의 서로 다른 숫자로 이루어진 배열을 만들고 데이터를 분석하는 함수를 작성하세요.
|
|
|
|
**요구사항:**
|
|
- 적어도 8개의 값을 가진 `numbers` 배열 생성
|
|
- 가장 큰 숫자를 반환하는 `findMaximum()` 함수 작성
|
|
- 가장 작은 숫자를 반환하는 `findMinimum()` 함수 작성
|
|
- 모든 숫자의 합계를 반환하는 `calculateSum()` 함수 작성
|
|
- 각 함수를 테스트하고 결과를 출력
|
|
|
|
**추가 도전:** 배열에서 두 번째로 큰 숫자를 찾는 함수 작성.
|
|
|
|
### 연습문제 3: 문자열 배열 처리
|
|
좋아하는 영화/책/노래 배열을 만들고 다양한 반복문 유형을 연습하세요.
|
|
|
|
**요구사항:**
|
|
- 최소 5개의 문자열 값을 가진 배열 생성
|
|
- 전통적 `for` 반복문을 사용해 번호와 함께 아이템 표시 (1. 아이템 이름)
|
|
- `for...of` 반복문을 사용해 대문자로 아이템 표시
|
|
- `forEach()` 메서드를 사용해 총 문자의 개수 세고 출력
|
|
|
|
**예시 출력:**
|
|
```
|
|
Traditional for loop:
|
|
1. The Matrix
|
|
2. Inception
|
|
3. Interstellar
|
|
|
|
For...of loop (uppercase):
|
|
THE MATRIX
|
|
INCEPTION
|
|
INTERSTELLAR
|
|
|
|
Character count:
|
|
Total characters across all titles: 42
|
|
```
|
|
|
|
### 연습문제 4: 데이터 필터링 (고급)
|
|
학생을 나타내는 객체 배열을 처리하는 프로그램을 만드세요.
|
|
|
|
**요구사항:**
|
|
- `name`, `age`, `grade` 속성을 가진 최소 5명의 학생 객체 배열 생성
|
|
- 18세 이상 학생을 찾기 위해 반복문 사용
|
|
- 모든 학생의 평균 성적 계산
|
|
- 성적이 85점 이상인 학생만 포함하는 새 배열 생성
|
|
|
|
**예시 구조:**
|
|
```javascript
|
|
const students = [
|
|
{ name: "Alice", age: 17, grade: 92 },
|
|
{ name: "Bob", age: 18, grade: 84 },
|
|
// 학생을 더 추가하세요...
|
|
];
|
|
```
|
|
|
|
## 코드 테스트하기
|
|
|
|
다음 방법으로 프로그램을 테스트하세요:
|
|
1. 브라우저 콘솔에서 각 연습문제 실행
|
|
2. 출력 결과가 기대값과 일치하는지 확인
|
|
3. 다양한 데이터 세트로 테스트
|
|
4. 경계 조건(빈 배열, 단일 요소 등)을 처리하는지 점검
|
|
|
|
## 제출 가이드라인
|
|
|
|
제출 시 다음을 포함하세요:
|
|
- 각 연습문제별 주석이 잘 달린 JavaScript 코드
|
|
- 프로그램 실행 화면 캡처 또는 텍스트 출력
|
|
- 각 작업에 선택한 반복문 유형과 그 이유에 대한 간략 설명
|
|
|
|
## 평가 기준
|
|
|
|
| 기준 | 우수 (3점) | 적절 (2점) | 개선 필요 (1점) |
|
|
| -------- | -------------------- | ------------------- | --------------------------- |
|
|
| **기능성** | 모든 연습문제를 보너스 과제 포함 정확히 완료 | 모든 필수 연습문제가 정확히 작동 | 일부 연습문제가 미완성이거나 오류 포함 |
|
|
| **코드 품질** | 깔끔하고 잘 구조화된 코드, 설명적인 변수명 사용 | 작동은 하지만 더 깔끔할 수 있음 | 코드가 지저분하거나 이해하기 어려움 |
|
|
| **주석** | 논리와 결정 과정을 포괄적으로 설명하는 주석 | 기본적인 주석 존재 | 주석이 거의 없거나 전무 |
|
|
| **반복문 사용** | 다양한 반복문 유형을 적절히 이해하고 사용 | 제대로 사용하지만 제한된 반복문 유형 | 반복문 사용이 부적절하거나 비효율적 |
|
|
| **테스트** | 다양한 시나리오에서 철저히 테스트한 증거 | 기본적인 테스트 수행 | 테스트 증거가 거의 없음 |
|
|
|
|
## 반성 질문
|
|
|
|
연습문제를 완료한 후 다음을 고려하세요:
|
|
1. 어떤 반복문 유형이 가장 자연스럽게 느껴졌고 그 이유는 무엇인가요?
|
|
2. 배열 작업에서 어떤 어려움을 겪었나요?
|
|
3. 이러한 기술이 실제 웹 개발 프로젝트에 어떻게 적용될 수 있을까요?
|
|
4. 성능 최적화를 위해 코드를 다르게 작성해야 한다면 어떻게 하겠습니까?
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**면책 조항**:
|
|
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역은 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원문 문서가 공식적인 출처로 간주되어야 합니다. 중요한 정보의 경우 전문 인간 번역을 권장합니다. 본 번역 사용으로 인한 어떠한 오해나 잘못된 해석에 대해서도 당사는 책임을 지지 않습니다.
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |