Skip to content

답안 제출 가이드

Heechan Kang edited this page Dec 14, 2024 · 34 revisions

매주 답안 제출은 GitHub 저장소에 PR을 올리는 방식으로 진행됩니다.
다수의 스터디 멤버들이 기여하는 협업 프로젝트이기 때문에 오픈 소스에 통용되는 Forking worflow을 따르고 있습니다.

스터디 멤버들은 스터디 저장소를 개인 계정에 포크(fork)를 떠서 작업을 하시고, 다시 원래 스터디 저장소를 상대로 PR을 올려주시면 됩니다.
한 문제를 푸셨든 다섯 문제를 모두 푸셨든 모든 답안 코드를 하나의 PR에 담아서 제출해주시기 바랍니다.

Important

즉, 모든 멤버가 매주 1개의 PR을 열어주셔야 합니다.

답안 제출 기한

한국 시간으로 🕛매주 토요일 자정까지 답안 코드를 PR로 제출해주세요.

답안 코드는 빨리 제출하실 수록 코치나 다른 멤버들이 충분한 시간을 갖고 좋은 피드백을 드릴 수 있는 가능성이 커집니다.
따라서 문제를 다 풀고 PR 올리려고 하시기 보다는 한 문제라도 푸시 PR을 열어놓고 중간 중간 피드백을 받으시면서 남은 문제를 푸시기를 추천드립니다.
(이 방법이 동기 부여 측면에서도 도움이 된다는 기존 멤버들의 의견이 많았습니다. 혹시 다른 의견이 있으시다면, 꼭 피드백을 남겨 주세요!)

답안 코드 작성법

DaleStudy/leetcode-study 저장소 메인 화면에서 Fork 버튼 클릭하여 저장소를 포크(fork)뜹니다.

image

복제된 개인 저장소를 로컬 컴퓨터로 클론(clone)받은 후 해당 디렉토리로 들어갑니다. 예를 들어,

$ git clone https://github.com/Bumsu-Yi/leetcode-study.git
$ cd leetcode-study

푸시려는 문제의 폴더 안에 자신의 깃허브 유저네임으로 파일을 생성합니다. 사용하시는 프로그래밍 언어에 맞게 확장자를 지정해주세요. 예를 들어,

$ cd two-sum
$ touch Bumsu-Yi.py

그 파일 안에 답안 코드를 작성하고, 변경 사항을 커밋(commit)합니다.

$ git add Bumsu_Yi.py
$ git commit -m "two sum solution"

답안 코드 제출법

작성한 답한 코드를 개인 원격 저장소로 push 합니다.

$ git push origin main

브라우저로 개인 원격 저장소을 열고, Contribute 버튼을 클릭하시고, Open pull request 버튼을 클릭합니다.

image

PR 생성 화면에서 상단에 있는 base repositoryhead repositry 가 각각 원본 원격 저장소의 main 브렌치와 본인이 작업한 브렌치가 맞는지 확인해줍니다.

image

PR 제목에 본인의 디스코드 닉네임을 포함 시켜주고 PR 내용을 작성한 후 Create pull request 버튼을 클릭합니다.

PR 작성법

Note

스터디 정책상 아래와 같은 몇가지 주의사항이 있습니다. 원활한 PR 병합을 위해 아래의 규칙을 지켜주세요!

1. PR의 제목 설정

image
  • 작성하신 PR의 제목에는 Discord 채널에 가입하신 계정의 별명 을 꼭 포함해 주세요. 원활한 소통과 리뷰를 위해 꼭 필요합니다!

2. PR 메타데이터 기입

Reviewers 기입

image
  • 상호 리뷰를 위해, 자신의 바로 직전 PR을 작성하신분을 리뷰어로 등록 해 주세요.
  • coach는 자동으로 추가되므로 고려하지 않으셔도 됩니다!

Assignees

image
  • Assignees또한 자동으로 추가되므로 수정하지 않으셔도 됩니다!

Labels

image
  • 제출하신 기록을 바탕으로 자동으로 언어 라벨이 추가됩니다.
    • 현재 라벨 자동 기입기능이 제공되지 않는 언어를 제출하는 경우, 수동으로 추가해주시거나, 디스코드 등을 통해 운영진에게 의견을 남겨주세요!
  • 오픈소스로 운영되므로, 알고리즘 풀이 제출 이외의 기여를 하실 멤버분들께서는 maintenance 라벨을 추가해주시면 됩니다.

Projects

image
  • 아래의 세 가지 항목을 지정해주셔야 합니다.
    • 참여중인 기수에 대한 Project 명 지정: 리트코드 스터디 N기
    • 제출하는 PR의 상태 지정(아래의 PR 상태 참고): 이 항목을 바탕으로 리뷰어와 코치들이 리뷰의 필요성을 판단하므로, 꼭 잊지 말고 기입해 주세요!
    • 현재 주차 기입: 리트코드 스터디 N기 우측에 작은 화살표(▼)가 있습니다. 이를 선택한 후, 현재의 주차(Week N(current))를 꼭 선택해 주세요!

Warning

PR 작성중에는 Project만 선택 가능하고, 진행상황은 선택 할 수 없습니다. PR을 제출해주신 뒤 지정 가능합니다.

3. 파일의 마지막에 개행문자를 추가

  • Posix 표준 준수를 위해 모든 파일의 마지막에 개행문자를 추가해주세요.
image
  • 위 예시는, 제출하신 파일의 마지막에 개행문자가 누락된 경우입니다.
  • 이런 경우 제출해주셔도 병합이 불가능하므로 꼭 제출한 풀이의 마지막에 개행문자를 포함해주세요!

4. 파일명은 자신의 {Github 계정명}.py 등의 형태로 작성

image
  • 제출하시는 파일의 이름은 자신의 깃허브 계정명으로 시작하도록 작성해 주세요.(Prefix)

올바르게 작성된 PR의 예시

image

이 외에는 PR 템플릿을 따라서 작성해주시면 됩니다.
PR Description에는 답안을 제출하신 문제와 체크 리스트를 나열해주세요.

Tip

모든 문제는 이슈로 등록되어있습니다. 문제명을 모두 작성하실 필요 없이, - [ ] #SOME_PROBLEM_NAME의 형태로 자동완성이 가능하니, 참고해주세요!

image

검토자가 PR Description만 봐도 진항 상황을 파악할 수 있도록, PR에 새로운 답안 코드를 push할 때마다 그에 맞춰 PR Description 안에 항목을 체크해주세요.

그 외 코드 리뷰에 대한 자세한 내용은 관련 가이드를 참고 바랍니다.

PR 상태

프로젝트에 추가된 PR들의 상태를 통해서 스터디 전체의 진행 현황을 매주 분석하고 있습니다.

상태 설명 비고
Solving 아직 문제를 풀고 있습니다. PR이 프로젝트에 추가되면 자동으로 설정됨
In Review 코드 리뷰가 진행 중입니다. PR 작성자가 직접 설정해줘야 함
Completed 문제 풀이를 완료하였습니다. PR이 병합되면 자동으로 설정됨

프로젝트 보드에 가시면 스터디 전체의 진행 현황을 한 눈에 파악하실 수 있습니다.

image

모범 PR 예시

코드와 시/공간 복잡도 설명을 상세히 작성한 모범 사례 PR들입니다. 참고하시면 더 건설적인 피드백을 받고, 알고리즘을 학습하는 데에 도움이 될 것입니다.