#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 |