[Algorithm] 1일 1알고리즘으로 1일 1커밋에 도전하기

반응형

코딩테스트를 준비하고 계시거나, 알고리즘 대회를 준비하고 계시는 분들이라면 1일 1알고리즘에 대해 어색하지 않을 것입니다. 그런데, 1일 1커밋을 도전하시는 분들이라면, 나는 오늘 무엇으로 커밋을 해야할까? 라는 고민을 하시게 될텐데요.

 

매일 알고리즘 풀이는 어렵더라도 가끔 오늘 커밋은 뭐하지? 라는 생각이 들 때가 있다면 1일 1알고리즘 풀이를 해보시는 건 어떨까요?

 

 

 

풀 때마다 일일이 소스 코드를 Git에 올리는건 귀찮아...

예전에 저는 코딩테스트 플랫폼(프로그래머스, 구름, 백준 등)에서 문제를 풀어본 후, 맞은 소스 코드를 별도의 레포지터리를 구성해서 커밋을 했던적이 있습니다. 

 

처음에는 할만했지만 시간이 지날수록 문제를 적고, 어떻게 풀었는지를 일일이 기록하는 것이 늘 귀찮은 일이었고, 결국 언제부턴가 해당 레포지터리의 커밋은 멈춰버렸습니다.

 

21년 4월 이후로 한 번도 변화가 없는 레포지터리... 결국 이 레포지터리는 언제부턴가 잊혀지게 되었네요..

 

 

 

LeetHub

LeetHub는 코딩테스트 플랫폼 Leetcode의 문제를 풀고 난 채점 결과와 소스 코드를 Github에 Push해주는 Google Chrome 플러그인입니다. 우리는 보통 알고리즘 문제를 풀고나면 그 과정을 아래와 같이 정리하곤 합니다.

 

  1. 어떤 사이트의 문제 번호와 이름을 폴더에 기록
  2. Markdown 파일에 제목으로 문제 번호와 이름을 명시
  3. 소스 코드를 첨부
  4. 코드 수행 시간이 얼마나 걸렸는지, 메모리는 얼마나 사용했는지..

Leethub는 이러한 일련의 과정들을 자동화 해주는 플러그인으로 알고리즘 문제 풀이에 진행했던 소스 코드를 자동으로 레포지터리에 올려줍니다.

 

사용을 위해 레포지터리 하나를 만들어줍니다.

 

레포지터리 이름은 아무렇게나 하셔도 상관이 없으며, Private Repository를 사용하셔도 무방합니다.

 

https://github.com/QasimWani/LeetHub

 

GitHub - QasimWani/LeetHub: Automatically sync your leetcode solutions to your github account - top 5 trending GitHub repository

Automatically sync your leetcode solutions to your github account - top 5 trending GitHub repository - GitHub - QasimWani/LeetHub: Automatically sync your leetcode solutions to your github account ...

github.com

https://chrome.google.com/webstore/detail/leethub/aciombdipochlnkbpcbgdpjffcfdbggi

 

LeetHub

Automatically integrate your Leetcode & GeeksforGeeks submissions to GitHub

chrome.google.com

그런 다음, Leethub 플러그인을 설치해줍니다. Google Chrome을 사용한시다면 크롬 웹 스토어에서도 다운로드 받을 수 있습니다.

 

플러그인이 설치되었다면 위처럼 아이콘이 나타납니다.

 

아이콘을 클릭하면 Github에 로그인할 수 있는 창이 나타나며, Authenticate를 누르면 로그인이 진행됩니다.

 

로그인이 되었으면 아까 위에서 만들었던 레포지터리 이름을 넣어준 후 Get Started 버튼을 클릭합니다.

 

연동에 성공했다면 이렇게 연결이 성공되었다는 메시지를 출력합니다.

그럼 이제 문제를 하나 풀어보도록 하죠.

 

이렇게 문제를 열고, 소스 코드를 입력한 다음 Submit을 합니다.

 

그러면 이렇게 결과가 출력되는데, 아까 만들었던 레포지터리로 가보면...

 

이렇게 내가 푼 문제의 번호와 이름을 디렉터리 이름으로 적고, 시간과 메모리 정보에 대해 커밋 내용으로 입력해줍니다. 덧붙여서 문제를 클릭하면 README.md에 어떤 문제였는지도 그대로 복사해서 붙여넣은 것을 볼 수 있습니다.

 

 

 

Baekjoon Hub

그런데 저는 알고리즘을 처음해봐서 영어로 된 문제를 이해하기가 어렵습니다. 라고 하시는 분들이 계신다면 최근 개발된 백준 Hub를 사용해보셔도 좋습니다.

 

백준 Hub는 알고리즘 문제 풀이 사이트 백준의 문제를 풀었을 때 Git에 자동으로 커밋을 해주는 플러그인으로 Leethub와 그 동작이 비슷합니다. 

 

https://chrome.google.com/webstore/detail/%EB%B0%B1%EC%A4%80%ED%97%88%EB%B8%8Cbaekjoonhub/ccammcjdkpgjmcpijpahlehmapgmphmk?hl=ko 

 

백준허브(BaekjoonHub)

Automatically integrate your BOJ submissions to GitHub

chrome.google.com

백준 허브 또한 Google Chrome 플러그인으로 제공하며 Leethub를 Fork하여 개발했기 때문에 사용법이 Leethub와 같습니다. 별도의 레포지터리를 만들고, 해당 레포지터리를 연결한 후 문제 풀이를 진행하면 됩니다.

 

레포지터리 연결은 Leethub와 동일하기 때문에 바로 문제 풀이를 진행해보도록 하겠습니다.

 

맞았습니다!! 가 출력되면 1초 뒤, BaekjoonHub 플러그인이 동작하는데, (이 때 창을 움직이시면 안됩니다) 동작이 끝난 뒤에는..

 

이렇게 문제 이름과 시간, 메모리 정보가 역시 커밋 메시지로 남으며 커밋이 됩니다.

 

 

 

마치며...

이번 글은 기술적인 글보단 개발자로 첫 단추를 꿰기 위해 1일 1커밋에 도전하거나, 회사 일 때문에 자기계발에 신경쓰지 못했는데, 오늘 한 번 도전해보자 라고 하시는 분들께 드리는 글입니다.

 

만약 코딩 테스트를 준비하고 계시거나 재미로 알고리즘 문제 풀이를 도전해보시거나, 오늘 1커밋할 게 없는데.. 라고 하시는 분들께 가끔씩 해보기 권해보는 글입니다.

 

 

반응형

Tistory Comments 0