1. 문제: 중앙값 구하기
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.
2. 제한사항
● array의 길이는 홀수입니다.
● 0 < array의 길이 < 100
● -1,000 < array의 원소 < 1,000
3. 입출력 예시
array result [1,2,7,10,11] 7 [9,-1,0] 0
4. 나의 풀이
<1: for문과 if문을 활용>
public static int solution(int[] array)
{
int answer = 0;
//이중for문과 if문을 이용하여 array배열의 원소를 낮은 수부터 크기 순으로 나열.
for (int i = 0; i < array.Length; i++)
{
for (int j = 0; j < array.Length; j++)
{
if (array[i] > array[j])
{
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
//리턴할 때 배열의 중앙에 위치한 값만 출력.
return answer = array[array.Length / 2];
}
<2: Array.Sort 매서드 활용>
public static int solution(int[] array)
{
int answer = 0;
//Sort()매서드: 배열 클래스에 속한 매서드. 괄호 속 배열의 원소를 오름차순으로 나열.
Array.Sort(array);
return answer = array[array.Length / 2];
}
1. 문제: 최빈값 구하기
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
2. 제한사항
● 0 < array의 길이 < 100
● 0 ≤ array의 원소 < 1000
3. 입출력 예시
array result [1,2,3,3,3,4] 3 [1,1,2,2] -1 [1] 1
4. 나의 풀이
public static int solution(int[] array)
{
int answer = 0;
int maxArr = 0;
//array배열에서 가장 큰 수를 maxArr에 대입.
for (int i = 0; i < array.Length; i++)
{
if (array[i] > maxArr) maxArr = array[i];
}
int[] cnt = new int[maxArr + 1];
int max = 0;
int num = 0;
//array배열 원소 중 같은 수의 빈도 수를 체크하고 분류.
for (int i = 0; i < array.Length; i++)
{
cnt[array[i]]++;
}
//cnt배열에서 가장 큰 수를 max에 대입. 그 때의 방번호가 answer.
for (int i = 0; i < cnt.Length; i++)
{
if (cnt[i] > max)
{
max = cnt[i];
answer = i;
}
}
//cnt배열 원소 중 max와 같은 수가 나오면 num++.
for (int i = 0; i < cnt.Length; i++)
{
if (cnt[i] == max) num++;
}
//만약 num값이 1보다 크면 cnt배열에서 빈도 수가 같은 원소가 2이상이라는 것. 그러면 -1을 리턴.
if (num > 1) answer = -1;
return answer;
}
'C# > 프로그래머스 코딩 문제 풀이' 카테고리의 다른 글
[프로그래머스 C#] Lv.0 배열 뒤집기, 문자열 뒤집기 (0) | 2024.01.05 |
---|---|
[프로그래머스 C#] Lv.0 짝수는 싫어요 (0) | 2024.01.05 |
[프로그래머스 C#] Lv.0 배열 두 배 만들기 (0) | 2024.01.05 |
[프로그래머스 C#] Lv.0 분수의 덧셈 (0) | 2024.01.05 |
[프로그래머스 C#] Lv.0 피자 나눠먹기 (1),(2),(3) (0) | 2024.01.05 |