- 알고리즘 스터디 개요
🖥️Github 사용 방법
문제 목록
- SSAFY 12기 서울 1반의 알고리즘 스터디입니다.
- 목표: SW 역량테스트 IM 통과
- 스터디 시작일: 2024.07.22 (월)
- 스터디 장소: 디스코드, 역삼역 인근 카페
- 스터디 시간: 월, 수 1~2시간
- 구성원: 노진원, 박태형, 박희원, 안주민, 정도영
- 주차별 백준 문제 풀이
- 5문제
- solved.ac 클래스 참고하여 선정
- 온라인 모의시험
- SWEA 기준 D2~D3 난이도 1문제
- 1시간 진행
- Python, PyCharm 이용
- 오프라인 스터디
- 주차별 문제, 모의시험 문제 리뷰
- 스터디 진행 상황 조정
01주차 : ✅ 24/07/22 ~ 24/07/30 => 구현
문제 목록
02주차 : ✅ 24/07/31 ~ 24/08/06 => 구현
문제 목록
03주차 : ✅ 24/08/07 ~ 24/08/13 => 구현
문제 목록
04주차 : ✅ 24/08/14 ~ 24/08/20 => 구현
문제 목록
05주차 : ✅ 24/08/21 ~ 24/08/27 => 삼성 SW 역량테스트 IM 대비 (swea)
문제 목록
-
- [S/W 문제해결 기본] 7일차 - 미로2 (탐색)
-
- [S/W 문제해결 기본] 10일차 - 비밀번호 (구현)
-
- 백만 장자 프로젝트 (그리디)
-
- 진기의 최고급 붕어빵 (시뮬레이션)
-
- 어디에 단어가 들어갈 수 있을까 (탐색)
06주차 : ✅ 24/08/28 ~ 24/09/03 => 삼성 SW 역량 테스트 (pass)
문제 목록
- 삼성 SW 역량 테스트 (문제 풀이)
07주차 : ✅ 24/09/04 ~ 24/09/10 => 휴식 주차 (pass)
문제 목록
- 휴식 주차
08주차 : ✅ 24/09/11 ~ 24/09/17 => 구현, 정렬, 완전 탐색
문제 목록
- solved.ac class 1 최대한 다 풀어오기
- 2920 - 음계 (구현)
- 10809 - 알파벳 찾기 (구현)
- 10250 - ACM 호텔 (구현)
- 1181 - 단어 정렬 (정렬)
- 1436 - 영화감독 숌 (브루트포스)
09주차 : ✅ 24/09/18 ~ 24/09/24 => 큐
문제 목록
- 2164 - 카드2 (큐)
- 1966 - 프린터 큐 (큐)
- 11866 - 요세푸스 문제 0 (큐)(다시 풀어보기)
- 아래는 BFS & DFS 기본 코드 참고 자료
- (선택 문제)
10주차 : ✅ 24/09/25 ~ 24/10/01 => 그래프 탐색
문제 목록
11주차 : ✅ 24/10/02 ~ 24/10/08 => 그래프 탐색
문제 목록
12주차 : ✅ 24/10/09 ~ 24/10/15 => 백트래킹 (기초)
문제 목록
13주차 : ✅ 24/10/16 ~ 24/10/22 => 중간 복습 (그리디, 그래프 탐색, 재귀)
문제 목록
14주차 : ✅ 24/10/23 ~ 24/10/29 => 이분 탐색
문제 목록
- 문제 풀이
- 일요일까지 주차별 모든 문제 풀이를 완료해주세요.
- 문제가 어려운 경우 다른 사람의 코드를 보고 풀이를 진행해도 괜찮습니다.
- 코드
- 코드는 다른 학습자가 자유롭게 열람할 수 있는 공부 자료입니다.
- 읽기 좋은 변수명, 함수명으로 작성해주세요.
- 주석으로 설명을 덧붙여 다른 학습자가 이해하기 쉽게 작성해주시면 더욱 좋아요!
- 리뷰
- 리뷰는 부담없이 각자 자유롭게 작성해주세요.
- 문법 정리, 문제 풀이 방법, 막혔던 부분, 힘들었던 점, 새롭게 알게된 점 등등 메모하는 느낌으로 짧게라도 꼭 작성해주세요.
- 참고자료
- 다른 학습자도 같이 공부할 수 있도록 문제 풀이 중 참고한 자료를 올려주세요.
- 예시) 파이썬 공식 문서, 블로그 자료 (다른 사람의 문제 풀이 코드, 문법 정리, 자료구조/알고리즘 내용 등등)
- 해당 레포지토리를 fork 하여 본인 Github 레포에서도 확인할 수 있어요 !
- 0번부터 6번까지 천천히 따라해보기 !
- 0번 ~ 1번 까지는 처음만 진행
- 이후로는
(작업 전) 2번 ~ (작업 후) 5번까지 진행합니다.
- GitHub에서 해당 레포지토리로 이동합니다
- Settings 탭을 클릭합니다
- 왼쪽 메뉴에서 Collaborators를 선택합니다
- Collaborators 섹션에서 Add people 버튼을 클릭합니다
- 팀원들의 GitHub 사용자 이름을 입력하고 Add를 클릭합니다
- 팀원들이 초대를 수락하면 레포지토리에 접근하여 브랜치를 생성하고 PR을 할 수 있습니다
- 레포지토리를 처음 클론할 때 다음 명령어를 사용합니다
- [참고] 원하는 경로의 상위 폴더에서 clone 진행을 해야 상위 폴더에서 해당 레포지토리 이름명으로 된 폴더가 생성됨
예시) D:\ 에서 git clone 진행 시 D:\SSAFY_Algorithm_stduy\ 으로 clone 진행
git clone https://github.com/SorrowAddict/SSAFY_Algorithm_study.git
cd SSAFY_Algorithm_study- 작업을 시작하기 전에 master 브랜치에서 최신 코드를 반영합니다 (pull 작업)
git checkout <branch명>-> 해당 브랜치 접속
git pull origin <branch명>-> 원격 저장소(origin)에서 해당 브랜치의 최신 변경 사항을 가져옴
git checkout master
git pull origin master- 새로운 작업을 시작할 때는 브랜치를 생성하고 해당 브랜치로 이동합니다
- 브랜치명은 자유입니다 (이름으로 하셔도 되고 닉네임으로 하셔도 됩니다)
git branch <branch명>-> 해당 브랜치 생성 [초기에만 진행합니다]
git checkout <branch명>-> 해당 브랜치 접속
git branch <이 부분 branch명 변경!>
git checkout <이 부분 branch명 변경!>예시)
git branch sorrowaddict
git checkout sorrowaddict- 브랜치 생성 후 개인 이름 or 닉네임으로 된 폴더 안에서만 작업합니다
- 개인 이름 or 닉네임으로 된 폴더를 제외한 곳에서 작업하고 PR merge 요청을 할 시 오류가 발생할 수 있음
- 기본적으로 다른 폴더는 수정하지 않습니다
- 오류 발생 시 MM !
- add, commit, push를 하기전에 꼭 !
git checkout를 통해 본인 브랜치에 접속했는 지 확인합니다
git add .
git commit -m "커밋 메세지"
git push origin <branch명>- GitHub에서 브라우저를 열고 레포지토리로 이동한 후, 새로 푸시한 브랜치에서 Pull Request를 생성합니다
- 팀원들의 코드 리뷰 후, PR이 승인되면 master 브랜치에 merge합니다
- PR의 경우 1주일에 1번만 진행합니다
- 파일명은 자유입니다
- git commit 메세지 양식은 기본적으로 자유입니다 !
- 따라서 자유롭게 커밋 메세지를 작성하셔도 됩니다 !!!
git commit -m "[문제출처] 문제번호 - 문제이름"
예시입니다 -> git commit -m "[BOJ] 2839 - 설탕배달"
예시입니다 -> git commit -m "왜 이렇게 어려움 !!!!!"
- 스터디에서 사용하진 않지만 참고 사항으로 적어 둘게요 !
- 아마 나중에 2학기 프로젝트 협업 기간으로 가게 되면 알아두어야 할 내용입니다
- 제목과 본문을 빈 행으로 구분한다.
- 제목은 50글자 이내로 제한한다.
- 제목의 첫 글자는 대문자로 작성한다.
- 제목 끝에는 마침표를 넣지 않는다.
- 제목은 명령문으로 사용하며 과거형을 사용하지 않는다.
- 본문의 각 행은 72글자 내로 제한한다.
- 어떻게 보다는 무엇과 왜를 설명한다.
// Header, Body, Footer는 빈 행으로 구분한다.
타입(스코프): 주제(제목) // Header(헤더)
본문 // Body(바디)
바닥글 // Footer
git commit -m "fix: Safari에서 모달을 띄웠을 때 스크롤 이슈 수정
모바일 사파리에서 Carousel 모달을 띄웠을 때,
모달 밖의 상하 스크롤이 움직이는 이슈 수정.
resolves: #1137"
| 타입 | 설명 |
|---|---|
feat |
새로운 기능에 대한 커밋 |
fix |
버그 수정에 대한 커밋 |
build |
빌드 관련 파일 수정에 대한 커밋 |
chore |
그 외 자잘한 수정에 대한 커밋 (예: 설정 변경) |
ci |
CI 관련 설정 수정에 대한 커밋 |
docs |
문서 수정에 대한 커밋 |
style |
코드 스타일 혹은 포맷 등에 관한 커밋 (기능 변경 없음) |
refactor |
코드 리팩토링에 대한 커밋 (기능 변경 없음) |
test |
테스트 코드 추가 및 수정에 대한 커밋 |
Body는 Header에서 표현할 수 없는 상세한 내용을 적는다.
Header에서 충분히 표현할 수 있다면 생략 가능하다.
Footer는 바닥글로 어떤 이슈에서 왔는지 같은 참조 정보들을 추가하는 용도로 사용한다.
예를 들어 특정 이슈를 참조하려면 Issues #1234 와 같이 작성하면 된다.
Footer는 생략 가능하다.