첫번째 - 나머지구하기
정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.
입출력 예
|
num1
|
num2
|
result
|
|
3
|
2
|
1
|
|
10
|
5
|
0
|
int solution(int num1, int num2) {
int answer = -1;
answer = num1%num2;
return answer;
}
그냥 % 연산자 써주면 된당
두번째 - 중앙값 구하기
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.
입출력 예
|
array
|
result
|
|
[1, 2, 7, 10, 11]
|
7
|
|
[9, -1, 0]
|
0
|
int solution(int array[], size_t array_len) {
int answer = 0;
int i, j, temp, minIndx;
for(j=0;j<array_len;j++){
minIndx=j;
for(i=j;i<array_len;i++)
if(array[i]<array[minIndx])
minIndx=i;
temp=array[j];
array[j]=array[minIndx];
array[minIndx]=temp;
}
answer=array[array_len/2];
return answer;
}
일단 정렬을 해준 후
배열의 가운데 값을 찾아서 리턴햇다
정렬에는 중첩 반복문 사용
제일 작은 값을 찾아서 앞에서부터 바꿔주면 된다
정렬만 잘 하면 어렵지 않다
세번째 - 최빈값 구하기
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
입출력 예
|
array
|
result
|
|
[1, 2, 3, 3, 3, 4]
|
3
|
|
[1, 1, 2, 2]
|
-1
|
|
[1]
|
1
|
int solution(int array[], size_t array_len) {
int answer = 0;
int count = 0, maxCount = 0;
int i, j;
for (i = 0; i < array_len; i++) {
count = 0;
for (j = i; j < array_len; j++)
if (array[i] == array[j])
count++;
if (count > maxCount) {
maxCount = count;
answer = array[i];
}
else if (count == maxCount)
answer = -1;
}
return answer;
}
이거 진~~~~짜 오래 고민햇다...
넘나 어려웟음
구글에 열심히 서치해가며 풀엇다...ㅎ
저는 왕왕초보니까요
이것도 중첩반복문을 사용햇다
나는 그냥 for문이 제일 편한듯... 이건 사람마다 다르겟지만요
앞에서부터 갯수 세어주고 맥스카운트랑 비교 해주면 된다
뭔가 쓰고보면 참 간단한데 왜케 푸는게 힘들엇을까
원래는 정말로 숫자를 세는 알고리즘으로 가려고 햇는데
(1이 3개 2가 1개...)
그럼 코드가 너무 복잡해지고
내가 생각한 방향으로 잘 되지 않아서 여기서 엄청 고민을 햇다
j=i로 놓음으로써 문제를 해결할 수 잇엇당ㅎㅎㅎ
네번째 - 짝수는 싫어요
정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
입출력 예
|
n
|
result
|
|
10
|
[1, 3, 5, 7, 9]
|
|
15
|
[1, 3, 5, 7, 9, 11, 13, 15]
|
int* solution(int n) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(sizeof(int) * ((n+1)/2));
int odd = 1, i;
for(i=0; odd<= n; i++){
answer[i]=odd;
odd += 2;
}
return answer;
}
동적할당은 챗지피티한테 물어봣ㄷ다
응그래도몰라
n이하일때까지 odd에 2씩 더해주면된당
3일차끝
그냥 정말 단지 개인적인 기록용이다...
심심하면 봐주떼염
'프로그래머스 코딩테스트' 카테고리의 다른 글
| 프로그래머스 코딩테스트 입문 DAY7 (1) | 2024.02.04 |
|---|---|
| 프로그래머스 코딩테스트 입문 DAY6 (0) | 2024.02.04 |
| 프로그래머스 코딩테스트 입문 DAY5 (0) | 2024.02.04 |
| 프로그래머스 코딩테스트 입문 DAY4 (0) | 2024.02.04 |
| 프로그래머스 코딩테스트 입문 DAY2 (0) | 2024.02.03 |