본문 바로가기
2021 상반기 취준대비 코스

2021 상반기 취준대비 코스 - 코딩테스트편

by 한끗차IT_JIN 2021. 1. 4.

안녕하세요. 한끝차IT입니다!😆

 

이번엔 정말 많은 분들이 고민하시고 계신 코딩테스트 관련 영상입니다!

최근 기업마다 코딩테스트는 어떻게 진행되고 있는지! 또 어떤 언어들이 시험에 유리할지! 저희가 분석하여 추천해 드릴테니 끝까지 읽어주시면 감사하겠습니다😊

 

<코딩테스트 어떤 언어 선택해야 돼?!요 1부 : youtu.be/f0jgga2uSrs >

 

Q1. 코딩테스트란?

코딩테스트란 주로 알고리즘과 자료구조를 이용하여 주어진 문제를 해결하는 시험입니다. 최근에는 단순히 알고리즘문제 뿐만 아니라, 문제에서 제공되는 api를 이용하여 서버와 통신하며 제시된 프로그램을 구현하는 프로젝트형, 그리고 데이터베이스에서 필요한 데이터만 추출하는 sql형이 있습니다.

 

+ 코딩테스트 근황

최근에는 삼성을 제외하고는 대부분 기업이 비대면으로 시험을 진행했는데요. 핸드폰 혹은 웹캠으로 화상캠을 켜고 응시사이트를 통해 시험을 치르는 추세입니다.각 회사별로 응시하는 사이트는 다르지만, 주로 프로그래머스, 구름 등 다양한 사이트에서 시험이 이루어지고 있습니다.

 

Q2. 언어 선택

각 회사별로 지원하는 언어가 다 다릅니다. 기본적으로는 C, C++, Java, Python 이고, 최근에는 Kotlin, Swift 같은 실제 해당 직무에서 사용되는 언어들까지 다양하게 지원되고 있습니다. 같은 알고리즘으로 풀이하더라도, 어떤 언어로 풀이하냐에 따라 코드의 길이가 달라지고 이것은 풀이에 소요되는 시간으로 직결되기 때문에, 본인에게 맞는 언어를 선택하셔야 합니다.

* 언어의 특성상 실행시간이 느린경우는 언어마다 제한시간이 다르게 주어지니 걱정안하셔도 됩니다!

 

Q3. C++ 

최근 Python이 떠오르기 전까지는 C++이 대세였고 지금까지도 많은 사랑을 받고 있습니다. 웅시자별 코딩테스트 언어 선택의 비율에서도 c++이 1위를 다투고 있습니다. 많은 사람들이 사용하는 만큼 백준이나 프로그래머스 문제를 풀 때도 많은 레퍼런스를 참조하여 연습할 수 있다는 장점이 있습니다. 또한 c++하면, stl 라이브러리에 정말 능숙해야 하는데요, 거의 모든 문제에 vector, set을 비롯한 다양한 stl에 있는 자료구조를 요구하기 때문에! 이번에 c++을 선택하시는 분이라면 가장 기초가 되는 stl 사용법을 익히시는 것을 추천드립니다.

 

Q4. Java

java의 경우에는 코드를 구조적으로 작성할 수 있다는 장점이 있습니다. 실제 코딩테스트를 풀이하다 보면, 코드가 길어지고 복잡해지는 경우가 있는데, 이때 객체지향언어의 특성을 잘 이용하면 문제가 되는 부분을 빠르게 찾아 수정할 수 있습니다. 그리고 다양한 자료구조에서 사용할 수 있는 라이브러리가 제공되기 때문에, 잘 이용하면 코드를 빠르게 구성할 수 도 있습니다. 하지만 객체지향언어의 특성을 살리지 못하고 너무 라이브러리에 의존하여 작성하면 실행시간이 많이 느려질 수 있습니다. 이러한 부분은 코딩테스트를 준비하면서 극복이 가능한 부분이고, 언어 특성으로 인해 실행시간이 느려져 실제 시험에서 틀리는 경우는 없기 때문에, 본인이 구조적으로 안정적으로 짜는 것을 선호한다면 추천드립니다.

 

Q5. Python

python같은 경우에는 최근 몇 년간 가장 떠오르는 코딩테스트 언어입니다. 카카오 2차코딩테스트의 경우에는 거의 80프로 이상의 개발자들이 파이썬을 선택할 정도로 그 힘이 강력해지고 있습니다. 아무래도 정말 다양한 라이브러리를 제공하고 무엇보다 문자열 관련된 문제에서는 파이썬만한게 없을 정도입니다. 무엇보다 코딩테스트는 시간싸움인데 같은 솔루션을 구현하더라도 다른 언어들보다 비교적 요구되는 코드 길이가 적어 다른 참가자들에 비해 유리했던 것 같습니다.

 

 

Q6. etc.

그리고 서비스 회사(네카라쿠) 같은경우에는 kotlin, swift, javascript 처럼 해당 직무에서 사용되는 언어들도 지원되는 경우가 있습니다. 이럴 경우에는 해당 언어들을 적극 활용해주시는 것을 추천드립니다. 이러한 언어들은 java와 python의 장점을 합쳐놓은 것 같은 느낌인데요. 자세히 말하면, java보다도 지원되는 라이브러리가 정말 많고 python처럼 boilerplate 코드(*boilerplate code : 특정 기능을 구현하기 위해 추가적으로 작성해야 하는 코드) 없이 작성할 수 있습니다. 그리고 해당 직무에서 사용되는 언어기에 여러분이 개발할 때 주로 사용하던 언어들이라 더욱 편히 이용하실 수 있을 것 입니다.

 

* 저희가 추천드리는 언어는 한끗차it의 주관적인 의견이고 타 언어를 비방하는 목적이 아닙니다.

Q7. 한끗차IT의 추천언어는?

Python입니다. 대부분의 회사에서 사용가능한 언어이고, 지원되는 라이브러리와 언어의 특징들이 현재 트렌드의 알고리즘 문제를 풀어내기에 좋기 때문입니다. 다만, 특정 기업에서는 간혹 지원하지 않는 경우가 있어 본인이 지원하고자 하는 기업의 채용 공고를 미리 확인하시는 것을 추천드립니다!

 

2부

코딩테스트 언어 선택에 이은 알고리즘 문제풀이 커리큘럼 및 풀이 방식 입니다!

 

<코딩테스트 그래서 어떻게 준비하냐고!요 2부 : youtu.be/ibBy2jBVDSw >

Q1. 코딩테스트 사이트 추천

우선 앞으로 설명 드리는 방법은 코딩테스트를 이제 처음 시작하는 분들 기준이므로, 본인의 실력에 따라 조정해서 풀이해주시면 감사하겠습니다. 추천드리는 알고리즘 풀이 사이트는 프로그래머스, 백준과 solved.ac, leetcode, 그리고 SWexpertAcademy 입니다. 

 

Q2. 프로그래머스 사이트

우선 프로그래머스는 대부분의 기업이 실제 코딩테스트를 제공하고 있는 환경입니다. 네이버, 카카오, 라인을 비롯하여, 엘지,sk 등 거의 모든 기업이 해당 사이트에서 시험을 진행하고 있습니다. 깔끔한 UI와 타 사이트에 비해 문제 수 역시 적어 무난히 입문하기 좋은 사이트인 것 같습니다. 알고리즘을 처음 푸시는 분들은 레벨 1부터 차근차근 푸시는 것을 추천드리고, 어느 정도 실력이 있다고 생각하시는 분들은 유형별 고득점 kit 약 60문제를 먼저 푸신 다음 카카오 기출문제를 푸시는 것을 추천드립니다!

 

+ 프로그래머스 코딩테스트 연습: https://programmers.co.kr/programmers.co.kr/learn/challenges

   프로그래머스 코딩테스트 고득점 Kit : programmers.co.kr/learn/challenges?tab=algorithm_practice_kit

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

+ sql 문제 연습하기 : 프로그래머스 SQL 고득점 Kit > programmers.co.kr/learn/challenges?tab=sql_practice_kit

 

Q3. 백준 사이트 & Solved.ac

백준은 정말 코딩테스트를 준비한다면 필수적으로 이용해야하는 사이트 중에 하나입니다. 정말 다양한 양의 분야와 난이도의 문제가 제공되고, 여러 회사, 대회의 문제가 모아져 있기 때문에 잘 이용하면 너무 좋습니다. 특히, 삼성의 모든 기출문제가 모아져 있기 때문에, 삼성 응시전에는 꼭 풀어보길 추천드립니다. 추가적으로  solved.ac라는 사이트를 함께 이용하는 것을 추천드립니다. solved.ac는 백준에 있는 문제들 중 엄선된 문제들을 보기좋게 분류해 놓았기 때문에, 함께 이용한다면 더욱 효율적이게 준비할 수 있습니다. 백준은 본인이 부족하다 생각하는 분야와 적절한 난이도에서 선택하여 풀이하시는 것을 추천드립니다.

 

+ 백준 : https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

   솔브드 : https://solved.ac/

 

solved.ac

우리 모두가 만들어가는알고리즘 문제해결 학습의 이정표 solved.ac는 Baekjoon Online Judge 문제들에 태그와 난이도를 붙이는 커뮤니티 프로젝트입니다. 현재 11,040개 문제에 난이도 정보를 제공하고

solved.ac

 

Q4. SWEA (SW Expert Academy)

다음은 소프트웨어 익스퍼트 아카데미(SWEA) 입니다. 해당 사이트는 삼성에서 지원하는 사이트인데요. 삼성의 경우 상시 SW역량테스트에서 좋은 성적을 받으면 코딩테스트가 면제되기도 하는데, 이는 해당 사이트를 통해 이뤄집니다. 삼성 공채, 싸피, 상시테스트 등 삼성과 관련된 시험을 준비하시는 분들이라면 이용해보시는 것을 추천드립니다. 문제 분야도 다양하고 각 분야별로 강의도 무료로 이용할 수 있기 때문에 알고리즘 강의가 필요하신분들에게 더욱 도움이 될 것 입니다.

+ SWEA : swexpertacademy.com/main/main.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

Q5. Leetcode(릿코드)

마지막으로 릿코드 입니다. 조금 생소하신 분들도 계실 것 같은데요, 저희가 릿코드를 추천드리는 이유는 코딩테스트보단 면접에서 자주 요구되는 손코딩을 대비하기 위함입니다. 실제로 릿코드에 있는 유형의 문제들이 실제 면접에서 비슷한 유형으로 자주 출제되긴 합니다. 손코딩의 가장 중요한 점은 맞고 틀리고가 아닌, 해당 문제를 얼마까지 효율적으로 풀 수 있는지를 확인하는 질문입니다. 실제로 손코딩 문제를 풀더라도, 면접관님은 더 최적화 시킬 수 없을까요? 이거 보다 더 나은 코드는 없을까요? 등의 압박 질문을 많이 하는 만큼!! 다양한 풀이로 풀어보시는 것을 추천드립니다.

+ leetcode : https://leetcode.com/explore/interview/card/top-interview-questions-easy/

 

Explore - LeetCode

LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.

leetcode.com

 

Q6. 코딩테스트 대비 커리큘럼

저희는 단순히 코딩테스트 대비 사이트만 추천드리는 것이 아니라! 도대체 어떤 문제부터 풀어야 코딩테스트에 합격할 수 있는지 고민하는 분들을 위해서 다음과 같은 코딩테스트 대비 문제풀이 순서를 준비해 보았습니다.

 

  1. 프로그래머스 1단계 클리어
  2. 프로그래머스 2단계 클리어
  3. 백준 문제 + 프로그래머스 3단계(보완하기)
  4. 삼성 기출 문제(백준)
  5. 카카오 기출 문제(프로그래머스)
  6. 백준 티어 골드 5까지 높이기
  7. 다다익선

 

위 과정을 모두 완료하신 분들은 다음으로 일반적인 유형의 문제가 아닌, Trie구조 처럼 자주 사용되지는 않지만 해당 알고리즘을 알아야만 풀 수 있는 문제를 풀이하면 좋을 것 같습니다. 그리고 구현문제도 다양하게 풀이하면서 문제에 여러가지 조건을 충족해내는 연습을 하시면 좋을 것 같습니다. 이는 2021 상반기 대비 알고리즘 관련 글에서 더욱 자세하게 다뤄보도록 하겠습니다!

 

Q7. 무작정 많이 푸는 것이 좋을까?

아니요! 문제를 무작정 풀이하는 것은 상당히 비효율적입니다! 물론 많이 풀어야 좋은 것은 맞지만 저희는 정말 효율적으로 문제를 풀어나가야 합니다. 문제를 풀이하시다보면, 분명 막히는 문제도 있고 맞왜틀!(*맞게 짰는데 왜틀려!)을 외치는 경우가 생길 것 입니다. 이런 경우는 시간을 효율적으로 사용하지 못하는 경우도 많아서 다음과 같은 순서로 문제를 풀이하시기를 추천드립니다.

  1. 문제를 이해한다.
  2. 어떤 알고리즘과 자료구조로 풀이 할지 생각한다.

if : 15분 이상 고민해봤지만, 아예 감도 안잡힌다. 바로 구글링!

else :

  1. 한 번에 맞췄다.
    1. 나의 유능함에 감탄한다.
    2. 구글링으로 다른 사람의 풀이를 찾아본다.
    3. 내 코드보다 효율적인지 아닌지를 비교해보고 감명받는다.
  2. 틀렸다.
    1. 다시 풀어본다.
    2. 30분 이상 도저히 못 풀겠다 생각이 들면, 질문게시판 등을 확인해 비슷한 사례를 찾아본다.
    3. 다시 시도해 보고 30분이 다시 소요됐다면 구글링으로 답을 확인한다.
    4. 답을 확인해서 풀이한 문제는 따로 모아놓고 나중에 다시 풀어본다.(필수적으로 이것을 해야 비슷한 유형을 마주할 때 풀 수 있다.)

Q8. 이번주 과제!

이번주 과제는 위에서 언급드린 4가지 사이트(백준, 프로그래머스, SWEA, Leetcode) 회원가입하고, 코딩테스트 풀이 시작입니다. 이번 겨울방학 약 2달 동안 목표는 프로그래머스 1,2단계 다 풀고 백준 실버티어까지 올리기입니다. 해당 난이도가 쉽게 느껴지시는 분들은 저희가 아까 언급한 다음 단계들을 진행하시면 좋을 것 같습니다! 개인일정에 맞게 분배해서 목표 달성하시길 바라겠습니다!

 

이번주 문제 :

코딩테스트 시험 환경과 언어에 익숙해지는 것이 이번 목표입니다! 많아 보이실 수 있겠지만, 이번 과제는 프로그래머스 레벨 1단계 중 쉬운 난이도로 선별하였습니다😊 어려우신 분들은 답을 찾아가며 문제를 풀어보시는 것을 추천드립니다! 궁금한 것은 아래 댓글 달아주세요 :)

 

오늘도 긴 글을 읽어주셔서 감사합니다!

한끗차it은 여러분들의 든든한 멘토가 되어 함께 나아가겠습니다😊

 

---------------------

* 한끗차IT 유튜브 : www.youtube.com/channel/UC0e36dIjdIxIEvfW__ibwDw/featured

* 궁금하신 거나 보고싶은 영상 주제 등 저희에게 말씀해주고 싶은 것은 댓글 달아주시거나 아래 메일로 자유롭게 연락주세요. 

한끗차it : thinlineit@gmail.com

댓글