반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- pccp 기출문제
- gameinstancesubsystem
- c#
- 로컬 네트워크 연결
- 최대값과 최솟값
- 리플렉션 시스템
- timelessadventure
- enetrole
- 2018 kakao
- 2022 kakao
- Unreal Engine
- netmode
- 2019 kakao
- C++
- 프로그래머스
- fabrik ik
- 코딩테스트
- issac3d
- unrealengine
- 구현
- ai controller
- network model
- Summer/Winter Coding
- 백준
- unity
- 프로젝트
- pcce 기출문제
- Algorithm
- fruitspuzzle
- 당구 연습
Archives
- Today
- Total
LeeTaes 공부노트
[프로그래머스/C++ 문제 풀이] Lv. 0 - 최빈값 구하기 본문
728x90
반응형
문제 설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
제한 사항
- 0 < array의 길이 < 100
- 0 ≤ array의 원소 < 1000
입출력 예
array | result |
[1, 1, 2, 2] | -1 |
[1] | 1 |
[1, 2, 3, 3, 3, 4] | 3 |
입출력 예 #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입니다.
문제 풀이
이번 문제는 주어진 값들 중 최빈값을 찾고(1), 동일한 최빈값을 가지는 요소가 있는지 판별(2)하는 문제입니다.
저는 간단히 전체 값들이 저장될 수 있는 배열을 선언하여 모든 수를 순회하며 빈도수를 저장하고, 이후 해당 배열을 순회하며 최빈값과 중복된 최빈값의 수를 찾아주는 방식으로 문제를 해결하였습니다.
개인적으로 map 자료구조를 사용하면 더욱 쉽게 풀이가 가능할 것이라고 생각하고, 두 가지 방법 중 map이 아닌 배열을 통해 풀이하는 방식이 조금 더 복잡하다고 생각하여 풀이를 남기게 되었습니다.
정답 코드
더보기
#include <string>
#include <vector>
using namespace std;
const int SIZE = 1002;
int arr[SIZE];
int solution(vector<int> array) {
int answer = 0;
for (int num : array)
{
arr[num]++;
}
int mxIndex = 0;
int mxValue = 0;
int mxCount = 0;
for (int num = 0; num < SIZE; num++)
{
// 만약 해당 숫자의 중복 값이 현재까지의 최대 값보다 크다면?
if (arr[num] > mxValue)
{
// 현재 중복 값 갱신
mxValue = arr[num];
// 인덱스 저장
mxIndex = num;
// 카운트 초기화
mxCount = 1;
}
// 만약 해당 숫자의 중복 값이 현재까지의 최대 값과 동일하다면?
else if (arr[num] == mxValue)
{
// 카운트 증가
mxCount++;
}
}
if (mxCount > 1)
answer = -1;
else
answer = mxIndex;
return answer;
}
728x90
반응형
'코딩테스트 > 프로그래머스 (Lv. 0)' 카테고리의 다른 글
[프로그래머스/C++ 문제 풀이] Lv. 0 - 코드 처리하기 (0) | 2024.07.01 |
---|---|
[프로그래머스/C++ 문제 풀이] Lv. 0 - 배열 조각하기 (0) | 2024.06.30 |
[프로그래머스/C++ 문제 풀이] Lv. 0 - OX퀴즈 (0) | 2024.06.29 |
[프로그래머스/C++ 문제 풀이] Lv. 0 - 다음에 올 숫자 (0) | 2024.06.25 |
[프로그래머스/C++ 문제 풀이] Lv. 0 - [PCCE 기출문제] 8번 / 창고 정리 (0) | 2024.06.24 |