728x90
반응형
힌트
더보기
int 배열 내에서 반복해서 나온 횟수를 기억한다
(* 2회 이상부터 기억해도 되지만 1회만 나왔을 때 예외처리를 해주어야 한다)
나온 횟수가 가장 큰 수를 리턴해준다.
최빈값이 2개 이상이면 -1을 리턴한다
- 반복문을 통해서 가장 많이 나온 숫자를 기억하는 방식
- GroupBy, Dictionary<int, int> 등으로 값, 나온 횟수를 저장할 수 있다
정답
더보기
var list = array.GroupBy(x => x, g => g, (x, g) => new { n = x, cnt = g.Count() });
var max = list.Where(x => x.cnt == list.Max(o => o.cnt));
return max.Count() > 1 ? -1 : max.First().n;
해석
더보기
var list = array.GroupBy(x => x, g => g, (x, g) => new { n = x, cnt = g.Count() });
list {값, 나온 횟수}를 저장
var max = list.Where(x => x.cnt == list.Max(o => o.cnt));
나온 횟수가 가장 큰 값들을 저장한다
return max.Count() > 1 ? -1 : max.First().n;
max의 수가 1 이상이면 -1을 리턴하고 1개일 때 값을 리턴한다.
max.First().n(max의 개수가 1개일 때 First, Last 둘 다 같은 그룹을 가리킴)
728x90
반응형
'C#' 카테고리의 다른 글
[프로그래머스 힌트/답/해석] 최댓값 만들기 1 (1) | 2024.01.29 |
---|---|
[프로그래머스 힌트/답/해석] 점의 위치 구하기 (0) | 2024.01.29 |
[프로그래머스 힌트/답/해석] 피자 나누기2 (1) | 2024.01.29 |
[프로그래머스 힌트/답/해석] 배열의 중앙값 구하기 (1) | 2024.01.29 |
[프로그래머스 힌트/답/해석] 분수 더하기 (1) | 2024.01.29 |