8월 2주차 과제 : 문제 2_중복된 숫자개수

2023. 8. 13. 11:35Algorithm ( p & swlug )/Programmers

8월 2주차 과제는 다음과 같다.

1. 피자나눠먹기(2)
2. 중복된 숫자개수
3. 중앙값 구하기

 

 

두번째 문제이다.

 

문제 설명

정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

입출력 예

[1, 1, 2, 3, 4, 5] 1 2
[0, 2, 3, 4] 1 0

 

 

처음에는 문제를 잘못읽어서  n이 주어질 때 몇개 있는지를 물었는데, array배열에서 중복된 개수가 몇개인지 묻는 거로 판단해서 문제를 풀었다.

 

이런식으로.. 음 심지어 처음에 있는 값은 중복으로 취급 안하는 줄 알고 경우의 수 까지 나누고 ,, 코드를 짜봤다.

 

 

 

근데 또 테스트는 신기하게 통과했다 근데 답안 제출했는데 틀려서 문제를 다시읽어봤는데,  n이 몇개인지를 물었네?

생각해보니까 n이 매개변수로 주어지는데 코드에서는 n이 활용될 곳이 없는걸 왜 생각 못했을까

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int array[], size_t array_len, int n) 
{
    int answer = 0;
    int i;
    
    for (i = 0; i < array_len; i++) 
        if (array[i] == n)
            answer++;
    
    return answer;
}

 int main() 
 {
 solution((int[]){1, 1,2, 3, 4, 5},6,1);

    return 0;
}

 

문제부터 정독해야지.

바로 수정하고 반복문을 통해서 반복적으로 array[i]의 값이 n 과 같을 때 answer++증가하도록 코드를 짰다.

 

정답입니다.!╰(*°▽°*)╯