# 배열과 반복문 과제 ## 지침 배열과 반복문 작업을 연습하기 위해 다음 연습문제를 완료하세요. 각 연습문제는 수업의 개념을 기반으로 하며 다양한 반복문 유형과 배열 메서드를 적용하도록 권장합니다. ### 연습문제 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. 성능 최적화를 위해 코드를 다르게 작성해야 한다면 어떻게 하겠습니까? --- **면책 조항**: 이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역은 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원문 문서가 공식적인 출처로 간주되어야 합니다. 중요한 정보의 경우 전문 인간 번역을 권장합니다. 본 번역 사용으로 인한 어떠한 오해나 잘못된 해석에 대해서도 당사는 책임을 지지 않습니다.