hibye1217 / Algorithms

함께 만들어가는 알고리즘 라이브러리

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Algorithms

함께 만들어가는 알고리즘 라이브러리

Contribution Guidelines

처음 기여하는 사람들을 위한 문서

1. 기여 양식

기여의 단위는 하나의 파일(Eg. dijkstra.cpp, binary-search.java)이나 경로 (longest-increasing-subsequence/)여야 합니다. 편의상 이 단위를 단위 파일이라고 부르도록 하겠습니다.

  • 하나의 파일이 아닌 폴더(경로)를 기여하고자 할 경우에는, 해당 폴더 내에 그에 대한 설명 문서가 존재해야 합니다. (README.md)

본 레포지토리의 파일 경로는 algorithms/{language}/{category}/{problem}의 형태를 띄고 있는데,

  • {language}는 코드에 사용된 언어를 뜻하고(Eg. C++의 경우 CPP, Java의 경우 Java, 등등),
  • {category}는 기여할 단위 파일의 주제나 분류를 뜻하며(Eg. Graph, Sorting 등등),
  • {problem}단위 파일에 걸맞는 이름을 뜻합니다.(Eg. binary-search.java, longest-increasing-subsequence, persistent-segment-tree.cpp, 등등)

하나의 단위 파일은 아래와 같은 규칙들을 지켜야 합니다.

  • 모든 파일명/경로명은 영어 소문자로 작성되어야 합니다.
  • 띄어쓰기가 필요한 경우 대시/하이픈 기호를 사용해야 합니다(-).

아직 존재하지 않는 주제/분류에 대한 기여를 하거나, 이미 존재하는 주제/분류의 하위 주제로 볼 수 있는 항목에 대한 기여를 할 경우 그에 알맞게 새로운 경로를 생성해도 좋습니다.

2. 기여 규칙

  • 코드 내에 외부 라이브러리에 대한 참조는 허용하지 않습니다.
    • 각 언어별 표준 라이브러리의 사용은 허용됩니다.
  • 기여의 단위는 하나의 알고리즘이나 자료구조, 혹은 그를 응용한 하나의 문제 상황에 대해서만 이루어져야 합니다.
    • 해당 항목에 대한 코드를 algorithms경로에 기여하거나, 자세한 설명 문서를 docs경로에 기여하면 됩니다.
      • 주제/분류에 대한 설명일 경우 docs에, 코드 자체에 대한 설명일 경우 코드와 같은 경로에 별도의 문서(Eg. README.md)를 첨부하여 하나의 폴더로 기여하면 됩니다.
  • 기여한 내용에 대한 최소한의 설명은 주어져야 합니다.
    • 코드는 최대한 가독성 있게 작성합니다.
      • 필요한 경우, 적절한 주석을 첨부해 줍시다.
    • 코드와 설명 문서를 탑재할 경우, 코드의 시간/공간 복잡도와 간단한 테스트 케이스를 함께 제공해 줍시다.
      • 하나의 소스 코드 파일만을 기여할 경우엔, 해당 파일 내에 주석으로 위 사항들을 포함해 줍시다.
  • 가급적이면 각 언어별 Naming Convention을 따르도록 합시다.
    • 변수/함수명은 각 변수/함수의 목적이 뚜렷하게 드러나도록 합시다.

About

함께 만들어가는 알고리즘 라이브러리


Languages

Language:C++ 100.0%