신입생을 위한 백준공부법

이하은·2024년 3월 3일
275
post-thumbnail

이 글은 23학번인 제가 24학번 신입생들을 위해 작성하는 글 입니다.

개발자가 되기를 원하는 여러분들은 프로그래밍 실력을 키워야합니다.
프로그래밍이라는 단어에 포함되는 의미는 여러가지가 있겠지만
프로그래밍의 기본이 되는 문제해결력을 기르고 자료구조 알고리즘을 공부하는 것은 여러분이 선택한 분야와는 상관없이 꼭 필요한 능력입니다.

그렇다면 백준이라는 사이트를 통해 문제해결력을 기르고, 자료구조와 알고리즘은 난이도 순서대로 효과적으로 공부해나가는 방법에 대해 알아봅시다.


프로그래밍의 단계

개인적인 생각이지만 프로그래밍에는 단계가 있습니다.
(여기서는 편의상 백준 문제를 풀어나가는 것을 프로그래밍이라고 지칭하겠습니다.)

  1. 기본적인 문법을 사용하여 간단한 문제를 해결할 수 있음
  2. 기본적인 자료구조나 알고리즘을 사용하여 다양한 문제를 해결할 수 있음.
  3. 어려운 알고리즘을 공부하며, 어려운 문제를 해결할 수 있음.

저는 이렇게 3가지 단계가 있다고 생각하는데요.

1단계

1단계에 도달하기는 쉽기 때문에, 신입생분들은 최소 3월 안에는 1단계를 달성하기를 바랍니다. 참고로 1단계면 학기초에 진행하는 교내 프로그램이 경진대회에서 수상을 노려볼 수 있는 단계입니다.
이 단계에 도달했다면, 아마 1학년 때에 배우는 프로그래밍 과목에서는 수업을 대충 들어도 A+를 맞을 수 있을 정도의 실력을 갖출겁니다.

2단계

2단계는 취업을 위한 단계입니다. 각종 알고리즘을 차례차례 공부하고, 관련된 문제를 풀고 코딩테스트를 준비하는 단계입니다.
각종 알고리즘을 크게 분류하면 정렬, 탐색, 그래프, DP, 분할탐색, 그리디 등이 있으며 가장 널리쓰이는 중요 알고리즘들을 공부하는 것이 핵심입니다.

3단계

3단계부터는 선택의 영역입니다. (1,2 단계는 취업을 위해 반드시 달성해야함)
3단계는 고급알고리즘을 공부하며, 상위등급의 문제를 푸는 것으로 도달하게 된다면 프로그래밍 능력이 어필포인트 중에 하나가 될 수 있다고 생각합니다. 많은 시간과 꾸준한 노력을 요구하기 때문에 정말 어렵다고 생각합니다.

현재 저는 1단계와 2단계 사이에서 2단계로 나아가려고 계획중입니다.
군대에서 전역할 때 쯔음에 2단계를 완료하려고 생각하고 있습니다.

아무튼 신입생 분들은 1단계에 빠르게 도달하는 것을 목표로 하세요.
1단계에 달성하면 장학금, 고학점, 여러 프로그래밍 활동에 참여하기 쉬움 등의 메리트가 있습니다.


당신이 프로그래밍이 처음이라면,

if-else , for, while, 변수할당, 함수, 배열(리스트), type 등에 익숙하지 않은 프로그래밍 초보라면 C 또는 파이썬 둘 중 하나의 언어를 선택해서 기초강의를 수강하길 바랍니다.

파이썬은 시작하기 쉽고 1학기 프로그래밍기초I 강의를 준비하기 좋습니다.

C언어는 파이썬에서는 학습할 수 없는 메모리관리 개념을 배울 수 있으며, 통상적으로 사용되는 언어 중에 실행속도가 가장 빠름으로 욕심이 있다면, C/C++로 프로그래밍을 시작하면 좋습니다. - 다만, C언어를 이용해 vsc로 코드를 짠다면 별도의 설정을 해주어야합니다.

해당 블로그의 포스트는 파이썬을 기준으로 제작되었습니다.

https://www.youtube.com/watch?v=kWiCuklohdY - 파이썬 기초강의(나도코딩)
https://www.youtube.com/watch?v=q6fPjQAzll8 - C언어 기초 강의(나도코딩)


1단계에 도달하는 방법.

1단계는 SOLVED.AC 기준 클래스 2의 문제를 모두 풀었다면 달성했다고 볼 수 있습니다.

https://www.acmicpc.net/ - 백준
https://solved.ac/ - solved.ac (백준 문제풀이 도우미)
https://code.visualstudio.com/ - vsc (프로그래밍 IDE)
https://marketplace.visualstudio.com/items?itemName=DivyanshuAgrawal.competitive-programming-helper
ㄴ cph(vsc로 백준 문제를 편하게 풀 수 있게 해주는 사이트)

백준 환경 설정

1. 일단 백준계정을 만드세요.

2. 로그인 후 설정에 들어가서 solved.ac를 활성화 하세요

3. 보기에 들어가서 아래 설정을 취향에 맞게 선택하세요

4. 해당 설정을 완료했다면 백준 문제를 난이도 별로 확인할 수 있습니다.

정답비율은 문제의 난이도를 파악하는데에 큰 의미가 없음으로 티어와 알고리즘 종류를 바탕으로 문제의 난이도를 파악하길 바랍니다.
본인 실력에 맞지 않는 티어의 문제나 모르는 알고리즘 문제를 오랫동안(일주일) 붙잡고 있는 것은 좋은 선택이 아닙니다.

solved.ac 사용방법

solved.ac에 들어가서 백준 계정으로 로그인 합니다.
1. 문제탭의 새싹에 들어가서 새싹에 있는 문제들을 다 풀어보세요
새싹 문제는 게임으로 치면 튜토리얼 같은 것 입니다.

  1. 문제의 CLASS 탭에 들어가서 각 문제를 풀어봅니다.
    CLASS 2에 달성한다면 제가 말한 프로그래밍의 1단계에 도달했다고 볼 수 있습니다. 5단계쯔음 부터 2단계, 그 이상을 노리는 사람들이 3단계 쯤 된다고 생각할 수 있습니다. 여러분들은 당장 CLASS2(1단계)를 달성하는 것을 목표로 공부하세요.

백준 문제풀이 환경세팅

이게 제일 좋다 이런 것 보다는 제가 사용하고 있는 환경을 알려드리는 것 입니다.
일단 프로그래밍IDE로는 VSCODE를 사용합니다. https://code.visualstudio.com/

vscode는 가볍고 확장(extension)을 이용해 입맛대로 커스텀 할 수 있다는 장점이 있습니다.

1.vscode를 설치하고, 초기환경설정을 마무리합니다.

2.첫 화면에서 Open Folder를 선택하고 자신이 원하는 위치에 programming 폴더를 만들고 그 안에 코딩테스트를 위해 작성한 문서를 저장해 둘 폴더를 만들고 해당 폴더를 선택해주세요.

4. 아래사진과 같은 상황이 되었다면, newfile을 이용해 파일을 만들고, 문제를 풀어나가면 됩니다.


cph 사용방법.

1. vsc 메뉴에서 확장(extesion)에 들어갑니다.

2. 검색창에 cph를 검색하고 해당 기능을 설치하면 준비완료

3. 이런 메뉴가 하나 생겼을 텐데 클릭하시고

4.createProblem 을 선택하여 cph를 활성화해주고

5. 테스트케이스를 집어넣고, 초록색 원형 화살표 버튼을 눌러 테스트를 해주면 됩니다.


마무리

신입생 여러분 프로그래밍의 기본기가 되는 백준문제 공부 꼭 하시길 바랍니다.
울산대의 가온누리라는 동아리에 들어가기 위해서는
1학년은 solved.ac 클래스1을 달성하는 수준이 필요하고
2학년은 solved.ac 클래스2를 달성하는 수준이 필요하다고 생각합니다.

클래스2는 달성하기 정말 쉬움으로
빠르게 달성하여, 교내 여러 프로그래밍 활동에서
많은 혜택을 누리시면 좋을 것 같습니다.

프로그래밍으로 얻을 수 있는 혜택으로는
학년별 교내 프로그래밍 경진대회(최대 상금 20~30 만원)
동아리 및 프로젝트 참여가 쉬움
A+ 학점이 많아져 장학금 따기 좋음 (프로그래밍은 벼락치기가 안됨)
등이 있습니다.

또한 이 포스트 이후에 울산대 신입생을 위한 슬기로운 IT생활 글도 작성할테니
신입생 여러분 velog 구독 부탁드립니다!!

profile
응애

22개의 댓글

comment-user-thumbnail
2024년 3월 5일

좋은 글 읽고 갑니다

1개의 답글
comment-user-thumbnail
2024년 3월 6일

백준을 새롭게 이용하는 신규 유저들에게 '백준을 어떻게 공부해야하는가?'에 대한 표본이네요. 좋은 글 잘 읽었습니다.

1개의 답글
comment-user-thumbnail
2024년 3월 6일

16학번인데 15학번 선배들이 아무도 이 이야기안해줬어요ㅋㅋㅋ좋은 선배님이시네요

1개의 답글
comment-user-thumbnail
2024년 3월 6일

무작정 코테를 시작하고 헤매는 것보단, 왜 해야 하는지에 대한 이유가 있어서 좋았습니다.
진심이 담긴 글 잘 읽었습니다, 감사합니다.

1개의 답글
comment-user-thumbnail
2024년 3월 6일

멋집니다... 하은님 최고 !!

1개의 답글
comment-user-thumbnail
2024년 3월 6일

감사합니다

1개의 답글
comment-user-thumbnail
2024년 3월 6일

유익한 글 감사합니다.;)

1개의 답글
comment-user-thumbnail
2024년 3월 6일

비록 24학번은 아니지만.. 너무 도움되는 글이네요! 감사합니다!

1개의 답글
comment-user-thumbnail
2024년 3월 8일

백준 공부하기 막막했는데 훌륭한 가이드 감사합니다.

1개의 답글
comment-user-thumbnail
2024년 3월 13일

오 좋은 글 잘 읽었습니다! 감사합니다

답글 달기
comment-user-thumbnail
2024년 3월 28일

늦게나마 CP 입문하려는 응애인데 도움 많이 됐습니다. 다른 글도 재밌네요. 대학 때 컴공 갔으면 재밌었을것 같기도하고.. 소통하고 싶어서 제 블로그 링크 달아 두고 가겠습니다ㅎㅎ 응원합니다!

답글 달기
comment-user-thumbnail
2024년 5월 28일

표준 가이드라인이랄게 사실 없어서 막막했는데 덕분에 기준점이 잡혔습니당 감사행용

답글 달기
comment-user-thumbnail
4일 전

좋은 글 감사합니다!

답글 달기