최근 부쩍 코딩 테스트에 관심이 높아지면서 자연스럽게 코딩 테스트에 유리한 언어가 무엇인지 궁금해졌다.
하여, 직접 찾아보기로 하였다.
불과 몇 년 전만 하더라도 Python의 경우 코딩 테스트에서 지원하지 않았는데, 점점 코딩 테스트에서 지원하면서 Python으로 코딩 테스트를 보는 사람들이 증가하는 추세이다.
우선 문제를 풀 때 왜 언어가 중요한지 알아보자
알고리즘 문제 풀이 사이트에는 많은 프로그래머들이 문제에 따라 정답을 제출하고 채점을 받는데, 채점을 받는 것이 각종 입력 예시에 따라 정답을 체크하는 것 외에 시간 초과라는 것이 있다.
문제를 풀었을 때, 제한된 시간내에 코드가 동작하지 않는다면 시간 초과로 틀리게 되는 것이다.
이러한 시간 관련 문제는 시간복잡도와 관련이 있는데 이는 자료구조 시간에 배울 수 있다.
어? 그런데 왜? 이게 시간 복잡도랑 관련이 있는지는 알겠는데, 어째서 언어가 유리하다는 거지?
바로, 기본적인 언어의 차이 때문이다. 같은 문제를 같은 구조로 풀었지만 기본적인 실행시간에서 C/C++ 이 Python보다 빠른 실행 속도를 가지기 때문이다. 하드웨어적 친화도에 따른 시간의 차이이다.
어떤 언어가 가장 유리할까?
알고리즘 문제 풀이 방식의 코딩 테스트
C++ 이 44%로 1위를 하였고, 파이썬이 36%로 2위를 하였다.
코딩 테스트는 DP, BF, 스택 , 큐 , Sort , DFS, BFS, 그리디, 트리, 그래프 등등 다양한 주제에서 문제가 나오게 된다.
이러한 주제에 따라 준비하는 입장에서 만약 문제수가 적다면 유리하지 않겠나?
하지만 언어에 따라 문제수의 차이는 없다.
그러면 무엇이 차이인가?
바로 코드의 줄 수 차이이다.
파이썬의 경우는 알고리즘을 작성할 때 라이브러리를 기본적으로 지원하는 경우도 있어, 빠르게 소스 코드를 작성할 수 있다.
바로 이러한 점 때문에 최근에는 Python 응시자가 증가하고 있다. 이러한 트렌드는 앞으로 계속해서 증가할 것이다.
하지만 Python의 경우는 삼성 알고리즘 테스트 B유형은 응시할 수 없다. B 유형은 C/C++로 제한된다. 업계에서 인식이 낮은 점에서 아직 Python이 2위를 하고 있는 이유라고 생각한다. 앞으로 2~3년 뒤에는 Python이 코딩 테스트를 지배하는 세상이 올 수도 있다.
파이썬의 리스트 기본 자료형은 C++ STL의 vector가 지원하는 기능과 유사하다. 그리고 파이썬은 문자열 처리가 다른 언어에 비해서 매우 간결하고 쉬운데 이는 구현 위주의 문제에서 더욱 빛을 발한다.
문제 풀이 사이트에 들어가 보면 Python3로 채점 시스템을 실행하는 것 외에 PyPy3으로도 실행할 수 있다. PyPy3은 Python3 보다 실행 속도에서 우위를 점하는데, 이렇게 채점할 수 있다는 점이 Python으로 코딩 테스트를 준비하는 장점이 된다.
C++의 경우는 알고리즘 대회에서도 유명할 정도로 많이 쓰이고 있는 언어이다. 그리고 어느 사이트를 가도 대체로 약속이나 한 듯 최고 등급인 빨강을 달성한 소위 ‘레드 코더’들은 대부분 C/C++를 사용한다.
이유는 C++은 실행시간 및 옛날부터 사용되어왔기에 자료가 많다. 후에 C++로 취업한다면 업계에서도 자료가 많아서 좋을 것이다.
이점이 코딩 테스트 준비를 하기에 수월하다.
프로그램 개발 방식의 코딩 테스트
프로그램 개발 방식의 코딩 테스트에서는 파이썬이 36%로 1위를 차지했다.
카카오 공채와 같은 과정에서는 프로그램 개발 방식의 문제도 출제되고 있다. 파이썬을 기본 언어로 한다면 라이브러리 사용과 코드의 수가 적어서 개발하기에 장점이 있다.
실제로 여러분이 다양한 언어를 배워본다면 Python의 장점을 알 수 있다. 물론 다른 언어들이 나쁘다는 것이 이 글의 논점이 아니다. C/C++, JAVA 등 자신에게 적합하다고 생각된다면 그것을 하면 된다. Python이 코딩 테스트에서 유리하다는 것을 나타내기 위한 글이다.
자 그러면 미래 가치를 봤을 때 당신은 어디에 투자할 것인가?
시간이 남는다면 다음과 같은 사이트를 들어가서 문제들을 보고 풀어보자
느낄 수 있을 것이다.
각종 알고리즘 풀이 사이트
이외에도 많은 사이트들이 있다.
읽어주셔서 감사합니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'IT 정보 공유 > IT 뉴스' 카테고리의 다른 글
퍼블리셔 vs 프론트엔드 vs 백엔드 vs 풀스택 개발자 완벽 구분! (0) | 2021.01.26 |
---|---|
프로그래머를 위한 코딩(Coding) 독학,인강 무료/유료 사이트 TOP 7 (0) | 2021.01.25 |
2021 핫 키워드 프로그래밍 언어 순위는?? (0) | 2021.01.24 |
댓글