Algorythm/프로그래머스 스쿨 (C 언어)
[C] 프로그래머스 스쿨_4주차 문제 1: 배열의 평균
gapsoo
2023. 7. 30. 18:09
[1] 문제
문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤ numbers의 원소 ≤ 1,000
- 1 ≤ numbers의 길이 ≤ 100
- 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
입출력 예
numbers | result |
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | 5.5 |
[89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] | 94.0 |
입출력 예 설명
입출력 예 #1
- numbers의 원소들의 평균 값은 5.5입니다.
입출력 예 #2
- numbers의 원소들의 평균 값은 94.0입니다.
[2] 정답 및 해석
(1) 정답 코드
1 2 3 4 5 6 7 8 9 | #include <stdio.h> double solution(int numbers[], int length) { double sum = 0.0; for (int i = 0; i < length; i++) { sum += numbers[i]; } return sum / length; } | cs |
(2) 해석
1 | double solution(int numbers[], int length) { | cs |
- solution 함수는 double 형태의 값을 반환한다. 두 개의 매개변수 numbers와 length를 받는다. numbers는 정수 배열을 가리키는 포인터이고, length는 배열의 길이를 나타낸다.
1 | double sum = 0.0; | cs |
- sum이라는 이름의 double 형 변수를 선언하고 0.0으로 초기화한다. 이 변수는 배열 numbers의 원소들을 누적해서 더하는 역할을 한다.
1 | for (int i = 0; i < length; i++) { | cs |
- for 문을 이용하여 반복 작업을 시작한다. i는 루프 제어 변수로, 0에서부터 시작하여 length - 1까지 증가하면서 반복한다. 배열의 인덱스는 0부터 시작하므로, 이러한 형태로 반복문을 작성한다.
1 | sum += numbers[i]; | cs |
- 루프 내부에서 sum 변수에 numbers[i] 값을 더한다. numbers[i]는 배열 numbers의 i번째 원소를 의미한다. 따라서 루프가 모두 실행되면, sum 변수에는 배열 numbers의 모든 원소의 합이 저장된다.
1 | } | cs |
- for 루프의 끝을 표시한다. 루프를 벗어나면 모든 배열 원소를 더한 결과가 sum에 저장된다.
1 | return sum / length; | cs |
- 함수의 반환 값으로 sum을 length로 나눈 값을 반환한다. 이것은 배열 numbers의 원소들의 평균값을 의미한다.
- 함수의 정의를 마치고 나면, 이어지는 main 함수에서 solution 함수를 호출하여 결과를 출력하게 된다. main 함수에서는 두 개의 배열 numbers1과 numbers2를 초기화한 후, solution 함수를 호출하여 각 배열의 평균값을 계산하고 출력한다.
[3] 풀이 및 오답
여려워서 책을 찾아보면서 공부했더니 비슷한 문제가 있어서 한 번에 맞출 수 있었다.
[4] 느낀 점
변수를 여러 개 설정해야 해서 헷갈렸다...