안녕하세요!
오늘은 어떤 언어가 알고리즘 문제 풀이 방식의 코딩 테스트에서 가장 유리한 프로그래밍 언어는 무엇인지 간단히 알아보겠습니다.
두 줄 정리
파이썬(Python)은 배우기 쉽고, 읽고 쓰기 쉬운 터라 초보자가 접근하기에 유리한 프로그래밍 언어(이하 언어)입니다.
컴퓨터 관련 전공자 외에도 중고등학생이나 일반인이 프로그래밍을 배우는 일이 많아진 요즘, 입문 언어로 파이썬을 가장 많이 선택하고 있는 이유죠.
쉬우면서도 활용도가 높아 기업이나 대학원 연구 과정에서 파이썬을 많이 사용합니다.
특히 최근 다양한 분야에서 활용하는 데이터 분석 이나 인공지능 분야에서도 뛰어난 성능을 보이고 있기도 합니다.
이는 라이브러리가 풍부하여 추상적인 레벨에서 쉽게 알고리즘을 구현할 수 있기 때문인데요.
1990년대까지만 하더라도 대부분 프로그래밍을 C 언어로 처음 배워서 알고리즘도 C 언어나 C++로 처음 공부하는 사람이 많았습니다.
▲ 이미지 출처 티오베 인덱스 https://www.tiobe.com/tiobe-index/
하지만 최근에는 처음 배우는 언어가 파이썬이나 자바스크립트 등의 언어로 바뀌면서 알고리즘을 배우는 언어도 바뀌고 있어요.
2020년을 기준으로 코딩 테스트에서 가장 유리한 언어는 C++와 파이썬이라고 생각합니다.
특히 이제 막 언어를 배우기 시작하는 사람이라면 파이썬이 더 적합할 수 있어요.
최근 코딩 테스트 유형을 보면 변칙적이고 다양한 유형이 등장하고 있는 터라 쉬우면서 변칙적인 유형에 대응하기 쉬운 파이썬이 코딩 테스트에 유리할 수 있습니다.
반면에 실행 시간을 기준으로 보면 다른 언어에 비해 빠른 C/C++가 유리하죠.
삼성전자는 SW 역량테스트 B형부터는 파이썬을 배제하고 있어요.
실행 시간을 기준으로 봤을 때는 파이썬보다는 C/C++가 더 빠르게 동작하며 C/C++가 더 하드웨어에 가까운 언어이므로, C/C++로만 시험을 치르도록 강조하는 경우도 있다고 이해하면 됩니다.
또한 삼성 SW 역량테스트 B형과 C형은 C++의 표준 라이브러리를 사용할 수 없어 기본 라이브러리 조차 모두 본인이 작성해야 하는 경우도 있습니다.
물론 삼성 SW 역량테스트와 같은 시험을 제외하고 대부분은 파이썬을 이용할 수 있으니 걱정 안하셔도 됩니다.
코드포스나 앳코더 같은 알고리즘 대회 사이트에서 레이팅이 높은 참가자를 확인해보면 C++를 선택한 참가자가 압도적으로 높습니다.
알고리즘 대회를 준비하는 학생이라면 C++를 선택하는 편이 더 좋을 수 있어요.
C++를 공부하는 과정에서 컴퓨터의 메모리 구조까지 더 자세히 알 수도 있으며, 여러 산업에서 오래 C++를 사용한 만큼 인터넷에 참고할 양질의 자료가 많기도 하죠.
국제 알고리즘 대회 사이트에서는 사용자의 대회 성적을 토대로 레이팅(Rating) 점수를 매깁니다.
그리고 그러한 레이팅 점수에 따라서 유저의 계정에 색을 입힙니다.
즉, 유저의 계정에 입혀진 색을 통해 해당 유저의 알고리즘 문제 해결 능력을 가늠할 수 있어요.
구체적인 명칭은 사이트마다 다를 수 있지만, 대부분의 알고리즘 사이트에서는 최상위권 유저에게 빨간색을 부여합니다.
코드포스나 앳코더 같은 사이트에서는 레드 코더의 비율을 상위 1% 미만으로 레이팅 시스템을 구성해요.
그리고 어느 사이트를 가도 대체로 약속이나 한 듯 최고 등급인 빨강을 달성한 소위 ‘레드 코더’들은 대부분 C/C++를 사용합니다.
반면에 파이썬은 C++나 자바에 비해 코드가 짧고 직관적으로 문제를 풀 수 있습니다.
또한 몇몇 알고리즘을 구현할 때는 라이브러리를 추가할 필요 없이 소스코드를 작성할 수 있어요.
예를 들어 C++나 자바 등은 큰 숫자를 처리하려면 BigInteger와 같은 별도의 라이브러리를 직접 구현하거나 가져와야 하는데 파이썬에서는 이러한 수고가 줄어들죠.
게다가 파이썬의 기본 자료형이 제공하는 기능이 매우 강력해 추가로 라이브러리를 사용하는 경우도 적어요.
예를 들어 파이썬의 리스트 기본 자료형은 C++ STL의 vector가 지원하는 기능과 유사합니다.
그리고 파이썬은 문자열 처리가 다른 언어에 비해서 매우 간결하고 쉬운데 이는 구현 위주의 문제에서 더욱 빛을 발합니다.
이런 점을 고려할 때 점점 C++나 자바보다 파이썬 응시자의 비중이 더 커지리라 예상 됩니다.
실제로 2019년의 응시자를 분석하면 최근 3년간 파이썬을 이용한 응시자가 급격히 증가했거든요.
이와 관련해서 IT 계열 직군의 취업 준비생부터 4년 미만의 경력자 50명을 대상으로 설문 조사를 수행 했습니다.
모집단은 2016 ~ 2019년 사이에 평균 3회 이상 코딩 테스트에 응시했으며, 설문은 참가자끼리 설문 응답 내용을 공유하지 않고 익명성을 보장할 수 있는 환경에서 진행 되었습니다.
먼저 ‘알고리즘 문제 풀이 방식의 코딩 테스트에서 가장 유리한 프로그래밍 언어’를 설문 조사한 결과 입니다.
44%의 사람들이 C++를 가장 유리한 언어로 선택했고, 36%를 차지한 파이썬이 그 다음으로 나타났네요.
설문으로도 파이썬이 알고리즘 문제 풀이 방식의 코딩 테스트에서 주로 선택하는 언어로 자리매김하고 있다는 사실을 확인할 수 있습니다.
실행 시간이 매우 중요한 문제 유형이 아닌 이상 웬만한 문제는 파이썬을 사용하면 짧은 코드로 라이브러리 없이 프로그래밍할 수 있기 때문입니다.
더불어 채점 시스템이 파이썬 3 뿐만 아니라 PyPy3를 지원한다면 대체로 코드가 더 빠르게 실행되죠.
앞에서도 언급했듯이 파이썬은 다른 언어에 비해서 큰 숫자, 리스트, 문자열을 처리하는 데 있어서 매우 편리한 기능을 기본으로 내장하고 있어요.
따라서 기본 알고리즘 문제 풀이에는 파이썬이 유리하다는 인식이 있죠.
저도 문자열을 다루어야 하는 문제는 주로 파이썬을 이용하여 문제를 풉니다.
그렇다면, 알고리즘 문제 풀이 방식이 아닌 프로그램 개발 방식(API 개발, GUI 프로그램 개발, 해커톤 등)의 코딩 테스트에서 가장 유리한 프로그래밍 언어는 무엇일까요?
이에 대한 설문 조사 결과는 다음과 같습니다.
파이썬이 36%로 높은 비중을 차지했네요.
파이썬은 최소한의 라이브러리를 활용해 다양한 프로그램 개발이 가능하기 때문에, 프로그램 개발 방식에서는 단연 파이썬이 가장 유리하다고 생각합니다.
카카오 공채 과정에서는 프로그램 개발 방식의 문제도 출제하고 있습니다.
파이썬을 기본 언어로 선택하여 공부한다면 상대적으로 수월하게 다양한 문제 상황에 대응하여 문제를 풀 수 있으리라 예상되는 이유죠.
특히 특정 서버와 통신하는 방식의 문제가 출제된 이력이 있는데, 이러한 통신 모듈을 작성하는 것도 C++나 자바에 비해서 사용할 라이브러리나 코드의 수가 훨씬 적습니다.
설문 조사 결과를 보고 생각했던 것보다 사람들이 ‘유리한 프로그래밍 언어’로 파이썬을 더 많이 선택했다는 사실에 놀랐습니다.
저도 개발하다가 리스트나 문자열을 다뤄야 할 때 “파이썬으로 하면 10분짜린데... 개발 언어를 파이썬으로 바꿔?”와 같은 농담을 동료에게 한 적이 있었네요.
그만큼 많은 상황에서 파이썬이 다른 언어에 비해 짧은 코드로 필요한 기능을 구현할 수 있죠.
다른 언어를 주 언어로 코딩 테스트를 치르는 사람들도 최근에는 파이썬이 더 유리하다고 느끼기 때문에 이러한 설문 조사 결과가 나온 것으로 판단 됩니다.
이미 알고리즘 대회를 준비해본 경험이 있거나 자신만의 팀 노트(Team Notes)를 가지고 있는 사람이라면 원래 이용하던 언어를 사용해서 코딩 테스트를 치르는 편이 유리 하겠습니다.
반면에 코딩 테스트를 처음 시작하거나 알고리즘 문제 풀이에 익숙하지 않다면 주저하지 말고 파이썬을 사용해보라고 추천 드립니다.
최근 코딩 테스트의 출제 경향은 파이썬 사용자들에게 유리한 경우가 매우 많거든요.
위 내용은 <이것이 취업을 위한 코딩 테스트다 with 파이썬>의 일부를 재구성 하여 작성 되었습니다.
<관련도서>
:취업과 이직을 결정하는 알고리즘 인터뷰 완벽 가이드, C/C++, 자바 코드 제공
이전 글 : [취업과 이직을 위한 알고리즘 인터뷰] 코딩 테스트가 무엇인지 알아보고 준비를 돕는 프로그래밍 사이트 4군데를 소개합니다.
다음 글 : [코딩 테스트에도 전략이 필요하다] 파이썬 실습 환경, 설치 필요 없는 온라인 사이트 3군데에서 준비하세요. + 파이참 설치 안내
최신 콘텐츠