2022년 3월 2일 ~
출석표
| 이름 | 1주차 | 2주차 | 3주차 | 4주차 | 5주차 | 6주차 | 7주차 | 8주차 | 9주차 |
|---|---|---|---|---|---|---|---|---|---|
| 권성민 | O | **** | **** | **** | **** | **** | **** | **** | **** |
| 정종현 | O | **** | **** | **** | **** | **** | **** | **** | **** |
| 정재민 | O | **** | **** | **** | **** | **** | **** | **** | **** |
| 노민성 | O | **** | **** | **** | **** | **** | **** | **** | **** |
| 임상우 | O | **** | **** | **** | **** | **** | **** | **** | **** |
| 주시원 | O | **** | **** | **** | **** | **** | **** | **** | **** |
| 김정현 | O | **** | **** | **** | **** | **** | **** | **** | **** |
| 이인규 | O | **** | **** | **** | **** | **** | **** | **** | **** |
-
구현력
- 본인이 생각한 알고리즘을 그대로 소스코드로 구현하는 능력.
- 프로그램 순서도, 사용할 변수나 함수의 데이터 타입 등을 올바르게 정하는 과정.
- 이 스킬을 향상시키려면 어떤 프로그램을 만들고자 하는지를 명확히 해야한다.
- 무엇을 입력받아 어디에 저장하고 어떤 과정을 거쳐 중간 결과로 무엇을 얻고 최종적으로 어떤 결과물을 출력하는지 순서도를 적은 후 데이터 타입 또는 자료구조에 저장할지 생각하는 연습을 하자.
-
문제해결능력
- 알고있는 알고리즘, 자료구조, 테크닉을 당면한 문제에 맞게 변형 적용하는 것
- 문제를 창의적인 시각에서 접근해 해결하는 능력이 필요
- 중위권에서 상위권으로 갈 때 발목잡는 스킬
- 이 능력이 부족하면 어떻게 접근해야 할지, 막상 솔루션은 내가 아는 알고리즘,자료구조 인 상황이 연출된다
- 이 스킬을 향상시키려면 양질의 문제를 풀기, 이전에 본인이 접근한 다양한 방법을 잘 정리 해두는 것이 좋다
-
배경지식
- 기초적인 프로그래밍 문법, 알고리즘, 자료구조, 선형대수나 확률 등 기본적인 수학적 지식 (가끔 하드웨어, OS 지식)
- 이 능력이 부족하면 솔루션을 열었을때 외계어를 마주하게 된다.
-
정해진 시간내에 문제풀때 문제 이해시간/풀이 생각시간/코딩시간/디버깅시간을 기록하며 어떤 부분이 구체적으로 부족한지 인지해서 부족한 부분에 더 노력을 들이기로
- 백준이나 프로그래머스 중 본인이 편한 사이트 선택
- 백준
- 백준사이트에 강의 부분이 있는데, 거기에 있는 알고리즘 종합 세트에 있는 문제를 따라간다.
- 위 문제를 다 풀면 알고리즘 문제해결전략 을 풀 예정이다.
참고 사이트 : https://gmlwjd9405.github.io/2018/05/14/how-to-study-algorithms.html
- 프로그래머스
- 본인 레벨에 맞는 문제 선정
- 개인적으로 문제를 선정, 2시간이 넘지 않도록 문제를 푼다.(몇개의 문제를 풀던간에 일주일에 2시간만 투자하는 의미)
- 못풀겠는 문제의 경우, 검색을 통해 코드를 본다. 코드를 봐도 이해가 안되는경우, 포기한다.(너무 붙잡아 두면 시간만 잡아먹는다)
- 풀었던 문제중에서 자신이 기억하고 싶은 문제를 설명한다.
- 질문이 있다면 다같이 해결해 보려고 노력(여러 견해를 알수 있음) 하나의 알고리즘을 푸는 많은 방법에 대해서 아는것은 도움이 많이된다.
- 이 저장소를
fork한다. - 생성된 원격 저장소에 자신의 이름으로 폴더를 생성한다. 자세한 내용은 여기에(아직링크안됨)
- 생성된 폴더에 자신의 소스코드를 업로드 한다. (폴더명에 콜론":" 안됩니다!)
- 이때
commit 규칙을 지키도록한다! - 원본 저장소로
Pull Request를 한다. (토요일에 Merge예정) - 다른 사람들의 PR을 보고 자유롭게 코드리뷰를 한다.
- 주의!! 기존 폴더를 지우면 안됩니다!! 개인 폴더 내부만 수정해주세요 :) (기존 폴더가 수정되면 PR에 충돌이 생길꺼에요!)
- commit 메세지: [문제 출처(플랫폼)] 문제이름
- 터미널에서 작성법:
git commit -m "[BOJ] Hello World"
- 플랫폼 작성법 통일:
- [BOJ] - 백준
- [PGS] - 프로그래머스
- 원본저장소는
master브랜치만 있도록 관리한다. - PR 제목: 이름 / 주차 / 몇 문제
kwonja / 8월 1주차 / 4문제- comment는 자유이나 가능하다면, 이번주에 풀었던 문제의 알고리즘 분류가 어떻게 되는지,
어떤 문제가 어려웠는지 회고를 작성한다면 개인에게도 도움되고 다른 코드 리뷰어가 참고하기 좋을 것 같습니다 :)
git clone https://github.com/kwonja/CBNU-algorithm-studying.git
클론후 생성된 파일에 자기이름 로 파일생성 ->여기에 코드를 넣을꺼임
local workspace에 'kwonja(예시)' 라는 이름으로 브랜치 생성
git branch kwonja(예시) "권자"라는 브랜치를 생성
clone으로 가져오면 원격 저장소가 알아서 등록이 될것이다.
혹시나 하면 git remote -v 로 확인
git checkout kwonja- master에서 kwonja 브랜치로 전환- workspace(워킹트리)에서 작업
git add "파일이름.cpp"git commit -m "message"git push origin kwonja- 원격저장소 kwonja 브랜치에 반영git checkout master- 브랜치 전환git pull- 원격저장소 master의 최신 정보를 로컬에 업데이트 시키기 (git fetch + git merge)git merge kwonja- master에 kwonja 브랜치 작업 반영git push origin master- 원격저장소 master에 반영
로컬에서 작업하기전 원본 저장소에 내용이 변경되어있을수 있다.
우리가 작업하는건 cpp파일이라 서로 겹칠일이 없어, 충돌이 일어나진 않겠지만, 한 파일에 대해서 코드를 수정할때는 최신화되어 있지 않은 코드로 사용하게되면 PR과정에서 꼬이게된다.
git remote add upstream 원본저장소URL원본저장소는 보통 upstream 이라는 이름을 사용git remote -v-잘 저장되었는지 확인git fetch upstream-원본저장소의 내용을 불러옴git checkout master-원격저장소의 master 브랜치로 이동git merge upstream/master-원격저장소의 master 브랜치에 merge ->로컬에 최신화 된 데이터를 가져온다.git push origin master-로컬에 가져온 최신화 데이터를 원격에 푸시