Menu
Coddy logo textTech

Practice #3

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

challenge icon

챌린지

쉬움

정렬된 정수 배열 arr(정렬된 연결 리스트의 값들)가 주어질 때, 연속된 중복 요소가 제거된 배열을 반환하는 removeDuplicates 함수를 작성하세요.

입력이 정렬되어 있기 때문에, 동일한 값들은 서로 인접해 있습니다. 각 값의 첫 번째 출현만 유지하고 나머지는 건너뛰세요.

이 문제를 해결하기 위해 연결 리스트를 사용하세요!

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

직접 해보기

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

int main() {
    char line[8192];
    if (!fgets(line, sizeof(line), stdin)) line[0] = '\0';
    int arr[4096];
    int len = 0;
    char* tok = strtok(line, " \t\r\n");
    while (tok) { arr[len++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
    int rs = 0;
    int* r = removeDuplicates(arr, len, &rs);
    for (int idx = 0; idx < rs; idx++) {
        if (idx > 0) printf(" ");
        printf("%d", r[idx]);
    }
    printf("\n");
    return 0;
}

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