[1] 문제
문제 설명
정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 ≤ array의 길이 ≤ 100
- 0 ≤ array의 원소 ≤ 1,000
- 0 ≤ n ≤ 1,000
입출력 예
array | n | result |
[1, 1, 2, 3, 4, 5] | 1 | 2 |
[0, 2, 3, 4] | 1 | 0 |
입출력 예 설명
입출력 예 #1
- [1, 1, 2, 3, 4, 5] 에는 1이 2개 있습니다.
입출력 예 #2
- [0, 2, 3, 4] 에는 1이 0개 있습니다.
[2] 정답 및 해석
#.1 정답 코드
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> // array_len은 배열 array의 길이입니다. int solution(int array[], size_t array_len, int n) { int answer = 0; for(int i = 0; i < array_len; i++) { if(array[i]==n) { answer++; } } return answer; } | cs |
#.2 해석
이 C 코드는 주어진 배열에서 특정 숫자 n과 일치하는 원소의 개수를 세는 함수이다.
1 | #include <stdio.h> | cs |
이 줄은 stdio.h 라이브러리이다. 이 라이브러리는 C 언어에서 표준 입출력 함수인 printf와 scanf를 사용하기 위해 필요한 라이브러리이다.
1 | int solution(int array[], size_t array_len, int n) { | cs |
이 부분은 solution이라는 함수를 정의하고 있다. 함수의 반환 값은 int 타입이며, 함수에는 세 개의 매개변수가 전달된다.
1. array: 정수형 배열을 나타내는 포인터이다. 함수 내에서 배열의 원소에 접근하기 위해 사용된다.
2. array_len: 배열 array의 길이를 나타내는 size_t 타입의 변수이다.
3. n: 찾으려는 숫자이다.
1 | int answer = 0; | cs |
answer라는 이름의 정수형 변수를 선언하고 0으로 초기화한다. 이 변수는 배열에서 n과 일치하는 원소의 개수를 저장할 용도로 사용된다.
1 | for(int i = 0; i < array_len; i++) { | cs |
반복문의 시작을 나타내며, i라는 정수형 변수를 0으로 초기화하고 배열을 반복하면서 각 원소를 검사한다. i는 배열의 인덱스를 나타낸다.
1 2 3 | if(array[i]==n) { answer++; } | cs |
현재 인덱스 i의 배열 원소가 n과 일치하는지 확인한다. 만약 일치하면 answer 변수의 값을 1 증가시켜서 n과 일치하는 원소의 개수를 카운트한다.
1 | return answer; | cs |
반복문이 끝난 후, answer 변수에 저장된 n과 일치하는 원소의 개수를 반환한다.
[3] 풀이
✔️ 배열의 인덱스를 사용할 때 인덱스가 배열의 범위를 넘어가지 않도록 주의해야 한다. 현재 코드에서는 배열의 인덱스를 0부터 array_len - 1까지 사용하고 있다.
[4] 느낀 점
1학기에 c언어 배울 때 배열 단원부터 공부를 소홀히 했는데 확실히 개념을 잘 모르겠다. 여름 방학에 복습하고 있어서 다행이다.
'Algorythm > 프로그래머스 스쿨 (C 언어)' 카테고리의 다른 글
[C] 프로그래머스 스쿨_7주차 문제 2: 아이스 아메리카노 (0) | 2023.08.20 |
---|---|
[C] 프로그래머스 스쿨_6주차 문제 3: 중앙값 구하기 (0) | 2023.08.11 |
[C] 프로그래머스 스쿨_6주차 문제 1: 피자 나눠 먹기 (2) (0) | 2023.08.10 |
[C] 프로그래머스 스쿨 5주차 문제 3: 피자 나눠 먹기 (1) (0) | 2023.08.04 |
[C] 프로그래머스 스쿨_5주차 문제 2: 양꼬치 (0) | 2023.08.04 |