#include <stdio.h>
#include <stdlib.h>

int* twoSum(int* nums, int numsSize, int target) {

    int *result = (int *)malloc(sizeof(int) * 2);
    int i, j;
    int a, b;
    // looping twice will not be efficient
    for (i=0; i<numsSize; ++i) {
     a = nums[i];
     for (j=i+1; j<numsSize; ++j) {
     b = nums[j];

     printf("a:%d\n", a);
     printf("b:%d\n", b);

     if ((a + b) == target) {
     result[0] = i;
     result[1] = j;
     return result;
     }
     }
    }
    return result;
}

int main(int argc, char const *argv[])
{
/* code */
int nums[] = {2, 7, 11, 15};

int *data = twoSum(nums, 10, 9);

printf("First: %d, second: %d\n", data[0], data[1]);

free(data);
return 0;
}

 

int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
    *returnSize = 2;
    int* result = (int*)malloc(*returnSize * sizeof(int));
   
    // Step 1: Start the first loop to iterate over the array elements.
    for(int i = 0; i < numsSize; i++) {
        // Step 2: Start the second loop to iterate over the rest of the array elements.
        for(int j = i + 1; j < numsSize; j++) {
            // Step 3: Check if the numbers at current indices i and j add up to the target.
            if(nums[i] + nums[j] == target) {
                result[0] = i;
                result[1] = j;
                return result;
            }
        }
    }
    // Step 4: If no such indices found, return NULL and set returnSize to 0.
    *returnSize = 0;
    return NULL;
}

 

'코딩테스트' 카테고리의 다른 글

과제 : 백준 문자열  (0) 2024.09.18
문자와 문자열(백준)  (0) 2024.09.18
1부터 N 까지 각각 / 3의 갯수는? (Small)  (0) 2024.09.18
N! 에서의 0의 갯수 (소인수분해 응용)  (0) 2024.09.18
소인수 분해 응용  (0) 2024.09.18
블로그 이미지

wtdsoul

,