# Insert a node at the head of a linked list  (Linked List)

[문제]

 

[코드]

SinglyLinkedListNode* insertNodeAtHead(SinglyLinkedListNode* llist, int data) {
    SinglyLinkedListNode* node = (SinglyLinkedListNode*)malloc(sizeof(SinglyLinkedListNode));
    node->data = data;
    node->next = llist;
    llist = node;
    return llist;
}

 

[코드설명]

node: 새로 추가할 node 동적할당

 

node의 data 필드에 data 저장.node의 next 필드에 llist(head pointer) 저장.node 연결 완료 후 llist를 node로 변경(head pointer 변경).

 

[채점 결과]

 

 

 

 

 

# Ice Cream Parlor  (Search)

[문제]

 

[코드]

int* icecreamParlor(int m, int arr_count, int* arr, int* result_count) {
    int* res = (int*)malloc(sizeof(int) * 2);
    int i, j;
    *result_count = 2;

    for (i = 0; i < arr_count - 1; i++)
    {
        for (j = i + 1; j < arr_count; j++)
            if (m == arr[i] + arr[j])
            {
                res[0] = ++i;
                res[1] = ++j;
                break;
            }
    }
    return res;
}

 

[코드설명]

res: 최종 선택된 아이스크림 종류 2개를 반환할 때 사용

 

이중 for문으로 arr[i]과 arr[j]를 더한 값이 m과 같다면 res[0]과 res[1]에 각각 i와 j를 1증가해서 저장한다.

이후 for문이 끝나면 res를 반환.

 

[채점 결과]

복사했습니다!