U E D R , A S I H C RSS

새싹교실/2020/이찌반/김재훈 (rev. 1.6)

새싹교실/2020/이찌반/김재훈

Describe 새싹교실/2020/이찌반/김재훈 here


==Level1==
===두개 뽑아서 더하기===
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// numbers_len은 배열 numbers의 길이입니다.
int* solution(int numbers[], size_t numbers_len) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    
    int TimesOfNumbers[201] = {0, };        //더한 결과값을 나타내는 배열, ex)1+1=2 -> 배열의 2번째 칸 값을 1 증가
    int sizeOfArr=0;        //동적할당할 배열의 크기
    
    for(int i=0; i<numbers_len; i++) {
        for(int j=i+1; j<numbers_len; j++)
            TimesOfNumbers[numbers[i]+numbers[j]]++;
    }
    for(int i=0; i<=200; i++) {
        if(TimesOfNumbers[i])
            sizeOfArr++;https://wiki.zeropage.org/wiki.php/%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2020/%EC%9D%B4%EC%B0%8C%EB%B0%98/%EA%B9%80%EC%9E%AC%ED%9B%88?action=edit
    }
    
    int* answer = (int*)malloc(sizeof(int)*sizeOfArr);
    //TimesOfNumbers의 n번째 인덱스가 1이상이다 -> numbers를 더했을때 그 값이 1회 이상 나왔다. answer에 값을 추가
    int j=0;
    for(int i=0; i<=200; i++) {
        if(TimesOfNumbers[i])
            answer[j++] = i;        
    }
    return answer;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-16 14:07:54
Processing time 0.0155 sec