Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Problem Solving

KHCU 프로그래밍 스터디員들의 코딩문제풀이를 공유하는 저장소입니다.

활동 목표

  • 컴퓨터공학의 핵심 영역 중의 하나인 자료구조와 알고리즘에 관한 지식과 코드 구현 능력을 함양합니다.
    → 7~8월 2개월간 시중의 코딩 대회 및 코딩 테스트에서 일정 수준 이상 성과를 거둘 수 있는 수준에 도달합니다.

  • PS(Problem Solving)이라는 새로운 취미생활을 얻습니다.
    → 자신의 문제풀이 코드를 정리하며 깃허브와 친해지기에도 좋습니다!

활동 방법

저장소 사용 규칙

  • 본 저장소의 사용은 다음과 같은 규칙을 따릅니다.

    1. Pull Request / Merge
    • 본 저장소의 main branch를 clone하여 새로운 branch를 만듭니다. 이때, 본인이 생성한 branch명 앞에는 {id}_를 접두사로 붙입니다.
      ex) kimpro82_boj01

    • main branch로의 직접 commit은 허용하지 않으며, 반드시 Pull Request 방식으로 코드를 올려주시기 바랍니다.

      • Pull Request의 제목은 자신이 푼 문제의 범위를 충실히 대표할 수 있도록 작성합니다(아래 예시).
        백준 > 단계별 문제풀이 > 1. 입출력과 사칙연산
        백준 > 단계별 문제풀이 > 21. 재귀 > 6. 별 찍기 - 10
        AtCoder Beginner Contest 310 > A~C
    • 문제 풀이에 관한 질의 응답은 Pull Request 또는 Discussions 게시판을 이용합니다.

    • Merge 전에 최소 1명으로부터 approval을 받습니다.

      • 이 approval은 문제풀이 내용에 대한 검토를 포함하지 않으며, 잘못된 폴더/파일의 네이밍 내지 기존 자료들의 훼손 여부만을 확인합니다.
    • Merge 요청은 반드시 Squash and Merge 방식으로 합니다.

      • 필요시 추가적인 코멘트를 작성합니다.
    2. 폴더/파일 네이밍
    • 다음과 같은 네이밍 규칭을 따릅니다.

      • 폴더명 : PascalCase를 기본으로 하되, 전후 단어의 관계가 계층적일 경우 underscore(_)를 삽입하며, 공백( )은 두지 않습니다(아래 예시).
        ├─CodingContest
        │  ├─AtCoder
        │  │  ├─ABC_001
        │  │  └─ABC_002
        │  ├─Codforces
        │  │  ├─CFR_881_Div2
        │  │  └─ECR_151_Div2
        │  └─MetaHackerCup
        │      └─2022
        │          └─Qualification
        └─ProblemSolving
            ├─BOJ
            │  ├─Etc
            │  └─Step
            │      ├─01
            │      └─02
            └─Programmers
                ├─PCCE_Sample
                │  ├─01
                │  └─02
                └─PCCP_Sample_Cpp
                    └─01
    • 파일명 : {문제 번호}_{추가하고자 하는 문자열_}{ID}.{확장자명}의 규칙에 따라 작성합니다(아래 예시).

      1000_kimpro82.c
      1001_kimpro82.cpp
      1002_kimpro82_WA.py
      1003_kimpro82_TLE.java
      • C# 등 하나의 폴더 안에 하나의 main() 함수만을 허용하는 언어의 경우, 위 파일명을 폴더명으로 하여 작성하시기 바랍니다(하나의 폴더 안에 하나의 문제풀이가 들어있는 꼴이 됩니다).
    • 문제풀이가 담긴 코드 파일 외의 컴파일된 실행 파일, 환경 설정과 관련한 파일, 기타 에셋 파일 등은 포함시키지 않습니다. (이 경우 .gitignore에 해당 폴더 또는 파일을 추가합니다.)

    • 유틸리티 : 파일명 일괄 변경

언어 선택

  • 어떤 언어로든 문제를 풀 수 있으나, C++과 파이썬이 대세로 알려져 있습니다.

  • 특정 기업의 코딩 테스트 통과라는 구체적인 목표를 가지고 있는 경우, 해당 기업의 공고를 사전에 잘 확인하고 준비하셔야 합니다. 대부분 C++/파이썬이면 대응이 되는 분위기지만 간혹 회사/직렬에 따라 다른 언어를 요구하는 경우가 있습니다.

  • 코딩문제풀이는 깊은 수준의 문법적 지식을 요구하지 않습니다. 그보다는 알고리즘이 중요합니다. 하나의 언어로 어떤 문제를 풀 수 있다면, 다른 언어로 다시 같은 문제를 푸는 건 그렇게 어렵지 않습니다. 지금의 언어 선택이 결정적인 갈림길이라 생각하지 마시고, 지금 손이 가는 걸로 한 문제라도 더 푸는 쪽을 권장합니다.

참고 도서

기타

  • 초심자의 경우, 문제풀이와 함께 깃허브 사용법을 동시에 익히기가 부담스러울 수 있습니다. 꼭 본 저장소가 아니더라도 스터디 까페 게시판 등 다양한 경로를 이용하여 코드를 공유하고 질의 응답을 주고받으시기 바랍니다.

  • 파일명에 삽입된 ID, 백준 온라인 저지의 단체별 랭킹 등을 활용해 본 README.md 문서에 재미난(?) 컨텐츠들을 추가해볼 생각입니다.

About

스터디원들의 코딩문제풀이를 공유하는 저장소입니다.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages