Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

새싹교실/2020/이찌반/정동원: Difference between revisions

From ZeroWiki
imported>jdw1042710
({CREATE})
 
imported>jdw1042710
No edit summary
Line 1: Line 1:
새싹교실/2020/이찌반/정동원 here
__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;
}