Menu
Coddy logo textTech

Practice #2

Coddy의 이중 연결 리스트 - 자료구조 시리즈 #6 코스 레슨 — 14개 중 11번째.

challenge icon

챌린지

쉬움

정수 배열 arr(이중 연결 리스트의 값들)와 양의 정수 n을 입력받아 마지막 n개 요소의 합을 반환하는 함수 sumLastN을 작성하세요.

만약 n이 리스트의 크기보다 크다면, 리스트 전체의 합을 구하세요. n이 0이거나 음수라면, 0을 반환하세요.

이 문제를 해결하기 위해 이중 연결 리스트를 사용하세요! tail에서 시작하여 뒤로 n단계만큼 이동하며 계산하세요.

반드시 DoublyLinkedList 클래스를 사용해야 합니다 (node.<ext>와 함께 doublylinkedlist.<ext>에 제공됨). 결과를 계산하기 위해 배열의 reverse, slicing, sort 또는 표준 라이브러리의 리스트 연산과 같은 언어 내장 기능을 사용하지 마세요.

직접 해보기

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"

int main() {
    char line1[8192];
    char line2[64];
    if (!fgets(line1, sizeof(line1), stdin)) line1[0] = '\0';
    if (!fgets(line2, sizeof(line2), stdin)) line2[0] = '\0';
    int arr[4096];
    int len = 0;
    char* tok = strtok(line1, " \t\r\n");
    while (tok) { arr[len++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
    int n = atoi(line2);
    int r = sumLastN(arr, len, n);
printf("%d\n", r);
    return 0;
}

이중 연결 리스트 - 자료구조 시리즈 #6의 모든 레슨