More actions
imported>jdw1042710 ({CREATE}) |
imported>jdw1042710 No edit summary |
||
| Line 1: | Line 1: | ||
__TOC__ | |||
== 코딩테스트 1단계 == | |||
=== 1.두 개 뽑아서 더하기== | |||
#include <stdio.h> | |||
#include <stdbool.h> | |||
#include <stdlib.h> | |||
int compare(void *a,void *b); | |||
// numbers_len은 배열 numbers의 길이입니다. | |||
int* solution(int numbers[], size_t numbers_len) { | |||
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. | |||
qsort(numbers,numbers_len,sizeof(int),compare); | |||
int* temp = (int*)malloc(sizeof(int)*201); | |||
memset(temp,0,sizeof(int)); | |||
int i,j,k,n=0; | |||
for (i = 0; i < numbers_len - 1; ++i){ | |||
for(j = i+1; j < numbers_len; ++j){ | |||
int count = 0; | |||
for(k=0; k < n; ++k){ | |||
if(temp[k] == numbers [i] + numbers[j]){ | |||
++count; | |||
} | |||
} | |||
if(count == 0){ | |||
temp[n] = numbers [i] + numbers[j]; | |||
++n; | |||
} | |||
} | |||
} | |||
qsort(temp,n,sizeof(int),compare); | |||
int* answer = (int*)malloc(sizeof(int)*n); | |||
for (i = 0; i < n; ++i){ | |||
answer[i]= temp[i]; | |||
} | |||
free(temp); | |||
return answer; | |||
} | |||
int compare(void *a,void *b){ | |||
int num1 = *(int *)a; | |||
int num2 = *(int *)b; | |||
return num1 - num2; | |||
} | |||
Revision as of 11:54, 3 October 2020
코딩테스트 1단계
= 1.두 개 뽑아서 더하기
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int compare(void *a,void *b);
// numbers_len은 배열 numbers의 길이입니다.
int* solution(int numbers[], size_t numbers_len) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
qsort(numbers,numbers_len,sizeof(int),compare);
int* temp = (int*)malloc(sizeof(int)*201);
memset(temp,0,sizeof(int));
int i,j,k,n=0;
for (i = 0; i < numbers_len - 1; ++i){
for(j = i+1; j < numbers_len; ++j){
int count = 0;
for(k=0; k < n; ++k){
if(temp[k] == numbers [i] + numbers[j]){
++count;
}
}
if(count == 0){
temp[n] = numbers [i] + numbers[j];
++n;
}
}
}
qsort(temp,n,sizeof(int),compare);
int* answer = (int*)malloc(sizeof(int)*n);
for (i = 0; i < n; ++i){
answer[i]= temp[i];
}
free(temp);
return answer;
}
int compare(void *a,void *b){
int num1 = *(int *)a;
int num2 = *(int *)b;
return num1 - num2;
}