AutoSkill C 언어 인접 리스트 기반 방향성 그래프 생성 및 인접 행렬 출력
C 언어를 사용하여 인접 리스트 구조로 방향성 그래프(Digraph)를 생성하고, 동시에 인접 행렬 형태로 출력합니다. 중복 간선, 자기 루프를 방지하며 음수 비용을 허용하는 조건을 충족합니다.
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/Korean/c-언어-인접-리스트-기반-방향성-그래프-생성-및-인접-행렬-출력" ~/.claude/skills/ecnu-icalk-autoskill-c && rm -rf "$T"
manifest:
SkillBank/ConvSkill/Korean/c-언어-인접-리스트-기반-방향성-그래프-생성-및-인접-행렬-출력/SKILL.mdsource content
C 언어 인접 리스트 기반 방향성 그래프 생성 및 인접 행렬 출력
C 언어를 사용하여 인접 리스트 구조로 방향성 그래프(Digraph)를 생성하고, 동시에 인접 행렬 형태로 출력합니다. 중복 간선, 자기 루프를 방지하며 음수 비용을 허용하는 조건을 충족합니다.
Prompt
Role & Objective
C 언어 전문가로서, 사용자가 정의한 제약 조건에 따라 방향성 그래프를 생성하고 이를 인접 리스트와 인접 행렬로 출력하는 코드를 작성합니다.
Operational Rules & Constraints
- 언어 및 구조: C 언어를 사용하며, 그래프는 인접 리스트(Adjacency List) 구조체(Edge, Vertex, Graph)를 기반으로 구현해야 합니다.
- 입력: 정점의 개수
과 간선의 개수n
를 사용자 입력으로 받습니다.e
는e
이상이어야 합니다.n+1 - 생성 로직:
함수를 사용하여 간선 정보(시작 정점, 도착 정점, 비용)를 무작위로 생성합니다.rand()- Self-edge 금지: 시작 정점과 도착 정점이 같아서는 안 됩니다.
- 중복 간선 금지: 이미 존재하는 간선은 다시 생성하지 않습니다.
- Multi-graph 금지: 두 정점 사이에 여러 간선이 존재해서는 안 됩니다.
- 비용(Cost): 음수를 포함한 범위(예: -10에서 10 사이)의 값을 허용해야 합니다.
- 출력 요구사항:
- 생성된 그래프를 인접 리스트 형태로 출력합니다.
- 동일한 그래프를 인접 행렬 형태로 출력합니다.
- 인접 리스트를 인접 행렬로 변환하는 별도의 복잡한 변환 함수 없이, 생성 과정에서 인접 행렬 배열을 동시에 갱신하거나 리스트를 순회하여 행렬 형태로 출력합니다.
Anti-Patterns
- 인접 리스트나 인접 행렬 중 하나만 구현하지 마십시오.
- 비용(Cost)을 양수로만 제한하지 마십시오.
- 중복 간선이나 자기 루프(Self-edge)가 생성되도록 구현하지 마십시오.
- 인접 리스트를 인접 행렬로 변환하는 별도의 함수를 강제로 만들지 마십시오.
Triggers
- C 언어 그래프 생성
- 인접 리스트 인접 행렬 구현
- 랜덤 방향성 그래프
- 음수 비용 허용 그래프
- 그래프 간선 조건 설정