문제 설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
입출력 예 설명
입출력 예 #1
- [1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.
입출력 예 #2
- [1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.
입출력 예 #3
- [1]에는 1만 있으므로 최빈값은 1입니다.
solution.c
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int array[], size_t array_len)
{
int answer = 0;
int count = 0; //반복되는 횟수
int check = 0; //반복 확인 변수
for(int i = 0; i < array_len; i++)
{
for(int j = i; j < array_len;j++)
{
if (array[i] == array[j]) //배열 길이만큼 비교
count++; //배열 값이 같을 경우 카운트 값 증가
}
if(count > check)
{
answer = array[i]; //반복된 배열 값이 answer 출력
check = count; //check값 증가
}
else if(count == check) //반복 횟수가 같을 경우
{
answer = -1; //-1 출력
}
count = 0; //count값 초기화
}
return answer;
}
반복문의 구조에 대한 이해가 부족해서 해결에 오래 걸렸었다.
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'프로그래머스 > level 0' 카테고리의 다른 글
[C] 피자 나눠먹기(1) (0) | 2023.01.21 |
---|---|
[C] 나머지 구하기, 중앙값 구하기 (0) | 2023.01.20 |
[C] 짝수는 싫어요 (0) | 2023.01.20 |
[C] 두수의 사칙연산 (0) | 2022.12.29 |
[C] 사칙연산, 조건문, 분수의 덧셈, 배열 두배 (0) | 2022.12.29 |