이 글은 23학번인 제가 24학번 신입생들을 위해 작성하는 글 입니다.
개발자가 되기를 원하는 여러분들은 프로그래밍 실력을 키워야합니다.
프로그래밍이라는 단어에 포함되는 의미는 여러가지가 있겠지만
프로그래밍의 기본이 되는 문제해결력을 기르고 자료구조 알고리즘을 공부하는 것은 여러분이 선택한 분야와는 상관없이 꼭 필요한 능력입니다.
그렇다면 백준이라는 사이트를 통해 문제해결력을 기르고, 자료구조와 알고리즘은 난이도 순서대로 효과적으로 공부해나가는 방법에 대해 알아봅시다.
개인적인 생각이지만 프로그래밍에는 단계가 있습니다.
(여기서는 편의상 백준 문제를 풀어나가는 것을 프로그래밍이라고 지칭하겠습니다.)
저는 이렇게 3가지 단계가 있다고 생각하는데요.
1단계에 도달하기는 쉽기 때문에, 신입생분들은 최소 3월 안에는 1단계를 달성하기를 바랍니다. 참고로 1단계면 학기초에 진행하는 교내 프로그램이 경진대회에서 수상을 노려볼 수 있는 단계입니다.
이 단계에 도달했다면, 아마 1학년 때에 배우는 프로그래밍 과목에서는 수업을 대충 들어도 A+를 맞을 수 있을 정도의 실력을 갖출겁니다.
2단계는 취업을 위한 단계입니다. 각종 알고리즘을 차례차례 공부하고, 관련된 문제를 풀고 코딩테스트를 준비하는 단계입니다.
각종 알고리즘을 크게 분류하면 정렬, 탐색, 그래프, DP, 분할탐색, 그리디 등이 있으며 가장 널리쓰이는 중요 알고리즘들을 공부하는 것이 핵심입니다.
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단계는 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로 백준 문제를 편하게 풀 수 있게 해주는 사이트)
정답비율은 문제의 난이도를 파악하는데에 큰 의미가 없음으로 티어와 알고리즘 종류를 바탕으로 문제의 난이도를 파악하길 바랍니다.
본인 실력에 맞지 않는 티어의 문제나 모르는 알고리즘 문제를 오랫동안(일주일) 붙잡고 있는 것은 좋은 선택이 아닙니다.
solved.ac에 들어가서 백준 계정으로 로그인 합니다.
1. 문제탭의 새싹에 들어가서 새싹에 있는 문제들을 다 풀어보세요
새싹 문제는 게임으로 치면 튜토리얼 같은 것 입니다.
이게 제일 좋다 이런 것 보다는 제가 사용하고 있는 환경을 알려드리는 것 입니다.
일단 프로그래밍IDE로는 VSCODE를 사용합니다. https://code.visualstudio.com/
vscode는 가볍고 확장(extension)을 이용해 입맛대로 커스텀 할 수 있다는 장점이 있습니다.
신입생 여러분 프로그래밍의 기본기가 되는 백준문제 공부 꼭 하시길 바랍니다.
울산대의 가온누리라는 동아리에 들어가기 위해서는
1학년은 solved.ac 클래스1을 달성하는 수준이 필요하고
2학년은 solved.ac 클래스2를 달성하는 수준이 필요하다고 생각합니다.
클래스2는 달성하기 정말 쉬움으로
빠르게 달성하여, 교내 여러 프로그래밍 활동에서
많은 혜택을 누리시면 좋을 것 같습니다.
프로그래밍으로 얻을 수 있는 혜택으로는
학년별 교내 프로그래밍 경진대회(최대 상금 20~30 만원)
동아리 및 프로젝트 참여가 쉬움
A+ 학점이 많아져 장학금 따기 좋음 (프로그래밍은 벼락치기가 안됨)
등이 있습니다.
또한 이 포스트 이후에 울산대 신입생을 위한 슬기로운 IT생활 글도 작성할테니
신입생 여러분 velog 구독 부탁드립니다!!
좋은 글 읽고 갑니다