728x90
반응형
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
제한사항
0 < array의 길이 < 100
0 ≤ array의 원소 < 1000
입출력 예
array result
[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1] 1
입출력 예 설명
입출력 예 #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입니다.
내 풀이
[Java]
class Solution {
public int solution(int[] array) {
int answer = 0;
int[] index = new int[1001];
int max = Integer.MIN_VALUE;
for(int i = 0; i < array.length; i++) {
index[array[i]]++;
if(max < index[array[i]]) {
max = index[array[i]];
answer = array[i];
}
}
int count = 0;
for(int j = 0; j < index.length; j++) {
if(max == index[j]) count++;
if(count > 1) answer = -1;
}
return answer;
}
}
[C]
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// array_len은 배열 array의 길이입니다.
int solution(int array[], size_t array_len) {
int answer = 0;
char index[1001] = {0};
int max = 0;
for(int i = 0; i < array_len; i++){
index[array[i]]++;
if(max < index[array[i]]){
max = index[array[i]];
answer = array[i];
}
}
int count = 0;
for(int j = 0; j < sizeof(index); j++){
if(max == index[j]) count++;
if(count > 1) {
answer = -1;
break;
}
}
return answer;
}
[Python]
def solution(array):
answer = 0
index = [0] * 1001
for i in array:
index[i] += 1
count = 0
for j in index:
if j == max(index):
count += 1
if count > 1:
answer = -1
else:
answer = index.index(max(index))
return answer
https://school.programmers.co.kr/learn/courses/30/lessons/120812
728x90
반응형
'코딩테스트 > 프로그래머스 입문' 카테고리의 다른 글
[코딩테스트 Lv.0] 피자 나눠 먹기(1) (0) | 2023.12.25 |
---|---|
[코딩테스트 Lv.0] 짝수는 싫어요 (0) | 2023.12.25 |
[코딩테스트 Lv.0] 중앙값 구하기 (0) | 2023.12.22 |
[코딩테스트 Lv.0] 나머지 구하기 (0) | 2023.12.19 |
[코딩테스트 Lv.0] 배열 두배 만들기 (0) | 2023.12.15 |