반응형

알고리즘이나 코딩테스트를 준비하다보면 백준에서 푼 문제들을 깃허브에 잘 정리해두라는 글들을 종종 볼 수 있다.

본인이 공부한 내역을 남길 수도 있고, 추후에 내 코드를 개선하는 데에 사용할 수도 있기 때문이다.

하지만 매일 매일 푼 문제들을 깃허브에 커밋한다는 것이 쉽지 않다. 까먹을 때도 있고, 쉬운 문제들을 빨리 풀어버리고 넘어가버려서..ㅎ

만약 1일 1커밋을 목표로 하시는 분들이 계시다면 백준 허브를 사용하여 백준 계정을 깃허브에 연동하고 맞게 푼 문제의 소스 코드를 깃허브에 자동 커밋되게 정리한다면 많은 도움이 될 것 같아 정리해본다.

 

1. 백준에서 로그인한 뒤 solved.ac를 연동한다. 만약, solved.ac 연동 방법을 모른다면 아래의 글을 참고하셔서 연동하면 된다.

2022.11.25 - [알고리즘(Algorithm)/백준] - 백준 계정 solved.ac 연동하는 방법

 

백준 계정 solved.ac 연동하는 방법

알고리즘 문제를 풀기에 가장 좋은 사이트 중에 한 곳이 백준이다. 백준은 solved.ac와 연동하여 문제의 레벨이나 나의 레벨을 수치화할 수 있고 기여나 히스토리 등을 확인할 수 있다는 장점이 있

spero-spera.tistory.com

 

2. 아래의 사이트를 통해 '백준 허브'를 검색한 뒤 설치한다. (크롬에서 설치할 것!)

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

 

백준허브(BaekjoonHub)

Automatically integrate your BOJ submissions to GitHub

chrome.google.com

 

3. 백준 허브 설치를 마치고 아래의 화면이 나오면 검은 바탕의 Authenticate를 누르고, 본인의 깃허브 계정(아이디, 비밀번호)을 입력한다.

 

4. 깃허브 로그인까지 마치면, 아래의 화면이 나오는데 Pick an Option을 눌러 Create a new Private Repository를 누르고 반드시 영문으로 본인의 깃허브에 백준 소스 코드들을 정리할 폴더 이름을 입력한다(이름은 영어만 되니 이 점 주의하자!).

 

4-1. 나의 백준 커밋 내역과 백준 풀이 1일 1커밋 내역을 공개하고 싶다면, 본인의 깃허브로 들어가서 4에서 생성한 폴더가 Private 권한으로 만들어져 있는지 확인하고(Public이라면 이 단계는 이미 완료된 상태), 해당 폴더를 누른 뒤, 상단에 있는 Settings에 들어간다.

 

4-2. Settings를 눌러 나타나는 화면에서 아무것도 누르지말고 그대로 아래로 스크롤하여 Danger zone의 가장 상단에 있는 Change visibility를 눌러 Public으로 권한을 바꾸어준다.

 

5. 이제 백준에서 문제를 풀고 맞으면, 아래의 화면과 같이 맞았습니다v 표시가 생길 것이고, 녹색의 v표시가 생겨야만 정상적으로 깃허브에 커밋된 것이니 만약 정상적으로 녹색의 v표시가 생기지 않는다면 본인이 백준 허브에 연동한 깃허브 폴더 이름을 변경하진 않았는지 잘 살펴보자.

 

728x90
반응형
반응형

알고리즘 문제를 풀기에 가장 좋은 사이트 중에 한 곳이 백준이다.

백준은 solved.ac와 연동하여 문제의 레벨이나 나의 레벨을 수치화할 수 있고 기여나 히스토리 등을 확인할 수 있다는 장점이 있어 연동하는 것을 추천한다.

 

먼저, solved.ac를 연동하기 전 화면과 연동하고 난 후의 화면을 확인해보자.

백준에서 solved.ac를 연동하기 전에는 아래와 같은 화면으로 나타난다.

확실하게 문제만을 확인할 수 있다.

하지만, solved.ac를 연동한다면 어떻게 될까?

무엇인가 바뀌었다. 가장 확연하게 드러나는 부분이 브론즈 V이다.

각 문제마다 대략적인 난이도를 확인할 수 있으며 부가적으로 나의 레벨도 확인할 수 있고, 랭킹이나 기여, 히스토리까지 볼 수 있어 편리하고 연동까지 번거롭지 않아 꼭 연동해보시는 것을 추천한다.

1. 백준에 로그인한 후, 설정에 들어간다.

2. 설정에서 solved.ac에 들어가 아래의 사용하기 버튼을 누른다.

3. solved.ac 연동 완료!

 

solved.ac는 2번 사진에서 solved.ac로 파랗게 된 부분을 눌러 접속할 수 있다.

solved.ac에서 레벨을 구분하는 방식은 브론즈 < 실버 < 골드 < 플래티넘 < 다이아몬드 < 루비 순이며, 부가적으로 기업의 코딩테스트 레벨은 실버~골드 정도라고 하니 코딩테스트를 준비하시는 분들은 이에 맞추어 참고하시길 바란다.

 

 

 

 

728x90
반응형
반응형

지금으로부터 약 1년 6개월 전.. 아래와 같은 글을 작성한 바 있다.

2021.05.26 - [코딩테스트(Coding Test)/Programming Basic] - 가장 기본적인 프로그래밍 독학 순서

 

가장 기본적인 프로그래밍 독학 순서

나는 컴퓨터공학을 전공한 사람으로 대학에서 C, JAVA, C++, Python, HTML/CSS을 배웠다. 전형적인 수동형 사람이었다. 뭔가 알아보고 스스로 해보기보단 대학 커리큘럼에 맞추어 공부하는 그저 그런 학

spero-spera.tistory.com

 

해당 글을 연재할 당시만해도 기본적인 프로그래밍 독학 순서는 정말 저렇다고 생각했고, 나 역시 해당 방식으로 공부했었다.

하지만 시간이 지나며 많은 자료를 읽어보고 나 역시 프로그래밍 공부를 다시 시작하며 해당 글을 정독해보니 코딩테스트를 준비하는 사람이라면 해당 방법이 꽤나 오래 걸리고, 불필요한 과정이 포함되어있는 것 같다는 생각이 들었다.

이제부터 내가 코딩테스트를 준비하기 위해 찾아본 방식에 따라 공부하면서 해당 내용들을 공유하고자 한다.

 

1. 나만의 주력 언어 찾기

내가 가장 자신있던 언어는 C였다. 하지만 코딩테스트를 준비하기엔 벅찬 언어라는 사실을 알게 되었다. C언어는 스택, 큐라는 기본적인 자료구조조차 하나하나 구현해야 하기 때문이다. Python, Java 등 일반적으로 코딩테스트를 준비하는 사람들이 주로 사용하는 언어들은 스택, 큐를 포함한 기본 자료구조를 구현할 필요없이 사용할 수 있다. 고로, 나는 다시 내가 주력 언어로 삼을 언어를 모색하기 시작했다.

가장 먼저, 손을 댔던 것은 Java였다.

1년도 채 되지 않는 한 번의 취업 경험을 바탕으로 생각했을 때 Java는 기본적인 소양같이 여겨졌다. 개발자라면 기본적으로 Java에 대한 이해가 필요하다고 느꼈다. 그래서 다음 취업을 위해서라도 Java를 공부해야겠다 마음먹었다.

그렇게 약 2주간 Java 문법을 공부하며 백준 문제를 풀다가 본격적인 자료구조 공부를 위해 사놓고 읽기를 미루던 책인 나동빈 저자의 '이것이 취업을 위한 코딩테스트다 with 파이썬'을 읽게 되었다.

그러면서 고민에 빠졌다. Java보다 Python을 많이 쓴다.. Python 코드가 무척 간결하다.. 해당 책에선 Python으로 설명되어 있어 Java로 응용하기에 시간이 더 걸린다.. 등등.. 많은 고민을 한 끝에 과감히 내 주력 언어를 Python으로 변경하게 됐다.

아무튼 이렇게 장단점을 두고 고민하여 자신의 주력 언어를 찾기를 권장한다.

 

2. 기본적인 문법 익히기

본인이 정한 주력 언어의 문법을 익히는 시간을 가져야 한다. 조바심이 나서 해당 단계를 대충 공부하고 건너뛰면 필자인 나처럼 문제를 풀다가 다시 이 단계로 돌아오고... 문제를 풀다가 다시 이 단계로 돌아오고... 문제를 풀다가... 이렇게 무한 루프에 빠지게 된다.

한번에 모든 문법을 제대로 익힐 수는 없지만 반드시 알아야 하는 기본적인 문법들은 잘 익혀두는 것을 추천한다.

기본서를 구매해도 되지만 요새는 구글링을 통해 좋은 기본서를 접할 수 있으니 취향에 따라 선택하여 공부하는 것을 추천한다.

(필자인 나는 '점프 투 파이썬', '혼자 공부하는 파이썬' 2가지의 기본서를 바탕으로 공부하고 있다.)

 

3. 코딩테스트 문제풀이 사이트에서 문제 풀기

내가 가장 먼저 추천하는 사이트는 백준과 프로그래머스이다. 언어에 상관없이 기초부터 문제를 풀어볼 수 있는 사이트이다.

가장 먼저 회원가입을 하고, '문제>단계별로 풀어보기'에서 재귀까지만이라도 풀어보자.

필자도 아직 재귀를 향해 문제를 풀어가는 과정 중에 있지만 한 문제 한 문제 풀어가면서 배우게 되는 것이 많다. 

 

그리고 백준에서 문제를 풀기 시작하면 solved.ac를 통해 자신의 레벨과 문제의 레벨을 확인할 수 있으니 로그인 후, 설정에서 solved.ac와 백준 계정을 연동할 것을 추천한다. (나는 코딩테스트 준비를 시작한 지 약 3주가 되어가는데 단계별로 풀어보기를 차근히 풀다보니 실버 5까지 2주도 채 걸리지 않았다.)

+ 백준에서 solved.ac 연동하는 방법은 아래 포스팅을 참고하길 바란다.

2022.11.25 - [알고리즘(Algorithm)/백준] - [백준] solved.ac 연동하는 방법

 

[백준] solved.ac 연동하는 방법

알고리즘 문제를 풀기에 가장 좋은 사이트 중에 한 곳이 백준이다. 백준은 solved.ac와 연동하여 문제의 레벨이나 나의 레벨을 수치화할 수 있고 기여나 히스토리 등을 확인할 수 있다는 장점이 있

spero-spera.tistory.com

+ 만약 본인이 C나 Python을 선택했다면 코드업에서 기본 100제도 한 번 풀어볼 것을 권장한다. 나는 해당 사이트를 몰랐으나 '이것이 취업을 위한 코딩테스트다 with 파이썬'를 통해 알게 되었다. 아주 기초적인 것부터 차근히 공부해나갈 수 있는 사이트이다.

+ 추가로 찾아보다보면 코딩테스트를 보는 기업의 문제 난이도가 대부분 solved.ac 기준으로 실버~골드 사이라고 하니 골드가 될 때까지 열심히 공부하는 것이 좋을 것 같다.

+ 번외로 나는 백준, SWEA, 코드업 기초 100제 이렇게 3가지 사이트에서 문제를 풀고 있다.

 

4. 자료구조와 알고리즘 공부하기

백준을 기준으로 재귀까지 풀고나면 이제 자료구조와 알고리즘을 알아야 하는구나! 라고 느끼는 순간이 찾아온다.

나 역시도 '이제는 기본적인 문법을 아는 것만으로는 더 이상 문제를 풀 수 없구나..'라는 생각이 들기 시작했다.

그럼 이제 이때부터 자료구조와 알고리즘을 공부하면 된다.

자료구조는 배열, 연결리스트, 스택, 큐, 트리, 힙 등이 있고, 알고리즘 종류로는 탐색, 정렬, 완전 탐색 등이 있다.

좋은 책을 추천할 만큼 내가 많은 책을 알고 있지 않아 섣불리 추천할 수는 없으나 내가 보고 있는 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책이나 흔히 종만북이라고 불리는 '프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략', '파이썬 알고리즘 인터뷰' 책이 코딩테스트를 준비하는 분들에게 유명한 것 같다. (나는 책 욕심이 많아 3권 다 가지고 있다..ㅎㅎ 가지고 있는 것에 그치지 않고 n회독 하는 것이 목표이다.)

 

5. 공부한 것을 증명해두기

이 단계는 까먹지 않고 실현하기를 정말정말 추천한다. 흔히 말하는 1일 1커밋이다.

나는 GitHub를 통해 증명하고 소스파일들을 보관하고 있는데, commit 내역을 볼 수 있어 자극이 된다. 하루에 한칸 한칸 repository에 push하면 아래의 네모 블록이 초록색으로 채워지는 것이 보여 재미도 있고, 이 재미 덕분에 너무 피곤해도 하루에 한 문제 이상 풀어 증명해두고 있다. (쉬운 문제 달랑 1개 풀고 commit하기 보다는 적어도 하루에 3시간의 여유를 두고 발전할 수 있는 문제를 풀 것을 추천한다.) 아래는 내 깃허브의 잔디이다. 시작한지 한 달도 채 되지 않아 아직 귀여운 정도이지만 차곡차곡 심을 예정이다.

꽤 오래 쉬고 있던 이 블로그를 내 개발 공부를 위해 다시 시작한 것도 비슷한 이유이다. 내가 매일 공부한 것들을 정리하면서 복습도 하고, 공유할 목적이다.

 

728x90
반응형
반응형

나는 컴퓨터공학을 전공한 사람으로 대학에서 C, JAVA, C++, Python, HTML/CSS을 배웠다.

전형적인 수동형 사람이었다. 뭔가 알아보고 스스로 해보기보단 대학 커리큘럼에 맞추어 공부하는 그저 그런 학생.

학교에서 강의를 듣고, 해당 범위에 있는 예제들을 따라 쳐보고, 돌아가는 것을 보고, 끝.

대학교에서 가르치는 프로그래밍 과목은 대개 문법을 한 학기가량 가르친다. 시험도 그와 유사하게 문법을 묻거나 간단한 코딩 몇 줄을 보는 형태이다.

그래서 나는 정말 기초 문법들을 열심히 공부하고, 과제용으로 여러 프로젝트를 만들었고, 공모전 입상을 위한 개발을 참 많이도 해왔지만, 논리적인 프로그래밍은 잘 하지 못했다.

내 코딩 방식은 오류가 나면 그 부분만 고치고, 고치고, 고치면서 코드의 체계성과 논리성은 점점 산으로 가는 코딩을 해왔다.

그리고 알고리즘 풀이가 낯설었다. 대학생활을 하면서 자연스럽게 1~2학년 때 배운 프로그래밍 언어들을 1~2년씩 소홀히 두고, 쓰던 코드들만 쓰게 되기 때문에 기본적인 알고리즘에 활용되는 근본적인 풀이가 낯설어졌다.

이제는 시간 여유가 생겨 알고리즘 해결 연습과 체계적인 코딩을 하고 싶어졌다. 어쩌다보니 잘 풀리는 코드가 아닌 논리를 갖춘 코딩.

그러다 문득, 무슨 순서로 다시 코딩 공부를 하는 것이 좋을까를 고민하다 대학생 1학년 시절의 내가 떠올라 프로그래밍 독학하는 방법을 순서대로 정리해보기로 했다. 많이 고민해보고, 다른 분들의 공부 방식을 찾아 정리한 대략적인 프로그래밍 공부 순서는 이렇다.

프로그래밍 공부 순서

1. C언어 문법 배우기

당장 무언가를 만들고자 하는 것보다 기본부터 배우고 싶다면 C언어를 배워야 한다. 배우기 쉬우면서도 가장 강력한 언어에 속하는 프로그래밍 언어이기 때문이다. 책을 사서 공부해도 되고, 이론과 실습을 동시에 할 수 있는 사이트를 찾아보거나 인터넷(유튜브, 생활코딩)을 통해 공부해도 좋다.

가장 중요한 것은 지금 당장 예제를 하나라도 더 따라하고, 이해하는 것이다.

 - 추천하는 책 : 윤성우의 '열혈 C프로그래밍'

 - 추천 사이트 : C언어 코딩도장

 

2. 알고리즘 습득하기

알고리즘은 중요하다. 하지만 그 전에 자료구조를 먼저 공부하는 것을 추천한다. 자료구조는 반드시 익힐 필요가 있다.

사실 여러 프로젝트를 해 본 사람들은 공감할 사례이지만, 눈앞의 프로젝트를 당장 해결해야 할 상황에서는 자료구조와 알고리즘이 개발에 있어 크게 중요하다고 느껴지지 않는다. 대충 코드 넣고 돌리면 오류생기고, 오류 고치면 다른 오류가 생기고, 그걸 반복하다보면 왜인지 이유는 모르겠지만 언젠간 원하는 방식으로 동작하기 때문이다. (해결 이유와 오류 원인은 제대로 알지 못한 채.)

자료구조를 당장 구현하지 않아도 되고, 한 번 구현해보고 더이상 들여다보지 않을 거라면 직접 구현해보지 않는 게 낫다. 그저 자료구조에 대해 암기할 거라면 말이다. 자료구조는 이해하는 연습을 해야 한다.

자료구조 공부가 너무 싫다면 큐, 스택, 덱, 힙, 이진검색트리 정도만이라도 먼저 익히는 것을 추천한다.

그런 다음, 알고리즘을 공부하면 좋다. 알고리즘을 연습하는 방식은 참 다양하지만 요령없이 직접 삽질해보는 것이 가장 좋은 방법인 것 같다.

 

3. OOP 언어 배우기

OOP 언어란, 객체지향언어(Object-Oriented Programming)을 의미한다.

OOP 종류는 너무 많다. C++, C#, JAVA, Python 등등등.. 본인이 마음에 드는 언어를 정하면 된다.

그리고 앞에서 말했던 것처럼 문법을 배우고, 알고리즘을 풀면서 스스로 오랜 시간 삽질을 해보면 된다.

아마, C언어를 제대로 익혔고, 꽤 오랜 시간 공들여 알고리즘 문제들을 풀어봤다면 (최소 3개월 이상) 이 단계를 거치는 것은 오랜 시간이 걸리지는 않을 것이다.

 

4. 직접 만들기

나는 문법을 익히고, 자료구조와 알고리즘을 공부하는 것까지 대략 3개월~6개월 정도 투자하길 권장한다.

이런 단계를 거치고 나면, 스스로도 이런 생각이 든다. '이렇게 배운 언어로 그래서 뭘 만들 수 있을까?' 

정답은 없다. 본인에게 달려있다. 본인이 많은 것을 만들고 싶으면 많은 것을 만들 수 있고 하나를 만들고 싶으면 하나를 만들 수 있다.

즉, 무엇이든 본인이 만들고자 하면 다 만들 수 있다는 것이다.

뭐부터 시작해야할 지 모르겠다면, 구글링을 하면 된다.

본인이 만들고 싶은 것이 앱이라면, '앱 만들기'를 검색해보자. 정말 수만가지의 코드와 강의가 쏟아진다.

본인이 만들고 싶은 것이 웹이라면, '웹 만들기'를 검색해보자. 마찬가지로 수만가지의 코드와 강의가 쏟아진다.

무엇이든 하나부터 천천히 만들어보는 것을 추천한다.

728x90
반응형

+ Recent posts