7천 개 이상의 회사가 자사 코딩 테스트에 프로그래머스를 사용합니다. 따라서 프로그래머스 사용법을 잘 알아두면 코딩 테스트를 진행할 때 사이트가 낯설어서 허비하는 시간을 줄이고 코딩 테스트에 집중할 수 있습니다. 프로그래머스 완벽 활용 가이드로 코딩 테스트 합격에 가까워지세요.
[코딩 테스트] 프로그래머스 완벽 활용 가이드
1. 프로그래머스는 어떤 곳인가요?
코딩 테스트 사이트로 유명한 프로그래머스는 개인 회원이 50만이 넘고 이용 기업은 7,000개가 넘습니다. 2024년 2월 기준으로 프로그래머스에서 시험을 본 응시자는 65만 명, 누적 테스트 수는 2만 개, 기업 고객은 1400곳이 넘습니다.
프로그래머스가 코딩 테스트 서비스를 제공하기 이전에는 리트코드(LeetCode) 등의 사이트에서 문제를 풀며 코딩 테스트를 준비했습니다. 이런 사이트들은 방대한 문제를 제공하는 장점은 있지만 실질적인 코딩 테스트를 대비하기 위한 학습 자료가 없습니다. 또한 문제를 푸는 사이트의 환경이 실제 시험 장소에서 제공하는 코딩 테스트 환경과 달라 이것도 큰 장애물입니다. 무엇보다 타 사이트의 문제는 국내 실정에 맞지 않습니다. 한국 IT 기업 취업을 목표로 하는 학생들이 공부하기는 적합하지 않죠.
반면에 프로그래머스는 여러분을 위한 학습 코스를 명확하게 제공합니다. 또 카카오, 네이버, SK 등 900여 IT 기업이 프로그래머스에서 코딩 테스트를 진행하므로 학습 사이트와 응시 사이트가 같을 확률이 높습니다. 그리고 사이트에서 제공하는 회사별 기출 문제를 확인할 수 있죠. 시험을 준비하는 입장에서는 굉장한 이득입니다.
※ 언어별 강의와 코딩 테스트 연습 힌트 모음집도 제공합니다.
※ 이력서를 등록하면 기업이 채용 제안을 하는 기능도 제공합니다.
제가 이 정도로 날 것 그대로 국내 실정을 이야기하는 이유는 그만큼 코딩 테스트가 어렵기 때문입니다. 하지만 취업하기 위해서는 반드시 넘어야 할 산이죠. 피할 수 없다면 해야 하고, 해야 한다면 이왕이면 효과적으로 하는 것이 좋습니다. 이 책은 프로그래머스의 장점을 최대한 살려 여러분이 코딩 테스트에 임하도록 돕습니다. 부디 이 책을 통해 취업에 성공하기를 기원합니다.
2. 프로그래머스 활용 가이드
이제부터 프로그래머스를 활용해서 코딩 테스트를 준비하는 과정을 알아보겠습니다.
2.1 프로그래머스 살펴보기
01단계 프로그래머스 사이트 programmers.co.kr에 접속하여 회원 가입 후 로그인하세요. 로그인을 하면 사이트에 소스 코드를 제출해서 문제를 풀어볼 수도 있고, 학습 현황도 확인할 수 있습니다.
02단계 로그인을 마치면 메일 인증 알림이 나타납니다. 메일 인증까지 마쳐주세요.
03단계 메일 인증을 마치면 다음 화면이 나타납니다. 화면 위쪽을 보면 메뉴에 [스킬체크], [코딩테스트 연습], [코딩역량인증시험] 메뉴가 보입니다. 각 메뉴를 간단히 알아봅시다.
[스킬 체크] 페이지
01단계 자신의 역량을 파악하는 데 도움이 되는 ❶ [코딩 테스트 → 스킬 체크] 페이지로 이동합니다.
스크롤바를 내리면서 어떤 내용이 있는지 볼까요? 레벨 1부터 레벨 5까지 코딩 테스트 통과를 위한 스킬 키워드가 오른쪽 위에 보입니다. 레벨 1의 경우 ❷ 문자열, 구현, 정렬, 해시, 그리디라는 키워드가 보이네요.
02단계 레벨당 ❶ 정확성/효율성 테스트 결과와 ❷ 코딩 테스트 점수 항목도 보입니다. ❸ [지금 도전]을 누르면 레벨 1에 맞는 문제를 풀며 여러분의 수준을 확인해볼 수도 있습니다. [지금 도전]을 누르면 뜨는 창에서 사용할 프로그래밍 언어를 선택해주세요. 저는 [Java]를 선택해 문제 풀이 화면으로 넘어갔습니다.
※ 다음 페이지에 있는 그림과 동그라미 번호를 맞춰 읽으세요.
03단계 그러면 문제 풀이 화면으로 넘어갑니다. 처음 문제 풀이 화면에 접속하면 다음과 같은 안내창이 뜹니다. 문구를 확인하면서 창이 없어질 때까지 ❶ [다음>] 버튼을 눌러주세요.
[코딩 테스트 연습]
01단계 메인 페이지로 돌아가 [코딩 테스트 → 코딩 테스트 문제] 버튼을 클릭합니다. 그러면 화면 ❶ 왼쪽에는 문제가 보이고 ❷ 오른쪽에 여러분의 순위, 점수, 해결한 문제가 보입니다. 여기서는 자신의 순위를 보며 알맞은 문제를 선택해 공부하기 좋습니다.
02단계 ❶ [상태]를 누르면 ❷ 팝업창이 나타납니다. 지금까지 여러분이 푼 문제를 보고 싶다면 [푼 문제]를 클릭해보세요. ❸ 화면 자체는 현재 랭킹과 같습니다.
2.2 문제 풀이 과정 살펴보기
이제 본격적으로 코딩 테스트 문제를 푸는 과정을 살펴보겠습니다. 앞으로 여러분이 볼 화면과 문제 푸는 과정을 설명하므로 여기는 조금 더 집중해서 읽어주기 바랍니다.
문제 선택하기
난이도는 0, 언어는 Java를 선택하면 설정에 맞는 문제를 보여줍니다. 보이는 문제는 사람마다 다를 수 있습니다. 일단 문제를 임의로 골라 선택합니다.
메뉴 살펴보기
문제 화면을 보면 왼쪽에 ❶ 문제 설명이 있고, 오른쪽에 ❷ 편집 화면, ❸ 실행 결과가 보입니다. 그 외의 메뉴가 많으므로 하나씩 짚어가며 설명하겠습니다.
문제
➊ 문제 설명과 제약 사항, 입출력 예시가 보입니다.
편집 화면
실제로 문제를 풀 ➋ 편집 화면입니다. 현재의 경우 언어 설정이 C로 되는데, 오른쪽 위의 ❹ 언어 설정 버튼을 누르면 언어를 변경할 수 있습니다.
하단 메뉴
하단에는 ❺~❿의 버튼이 있습니다.
❺ [다른 사람의 풀이]는 다른 사람의 풀이를 참고할 수 있습니다. 여러분이 정한 시간 내에 문제를 풀기 어렵다면 이 버튼을 활용하세요. 다만, 이 기능은 문제를 풀지 않은 상태에서 사용하려면 여러분의 점수를 차감해야 합니다. 기본 점수는 1,000점입니다.
❻ [초기화]는 모든 화면을 초기화합니다.
❼ [코드 실행]은 왼쪽의 입출력 예에 있는 항목으로 여러분의 코드를 실행합니다.
❽ [제출 후 채점하기]는 실제 코드를 채점하기 위한 수많은 테스트 케이스로 여러분의 코드를 실행하고 코드를 제출합니다.
❾ [질문하기]는 말 그대로 질문을 할 수 있는 게시판 기능입니다.
❿ [테스트 케이스 추가하기]는 입출력 예에 여러분이 다른 입출력 예를 추가할 수 있는 기능입니다.
❽ [제출 후 채점하기]에서 모든 테스트 항목을 통과하면 다음과 같이 점수를 획득했다는 안내창이 나타납니다. 문제를 풀어 10점을 획득했네요. 그리고 앞서 말했던 ❺ [다른 사람의 풀이 보기]는 정답을 맞춘 후에는 포인트 차감 없이 확인할 수 있습니다. 같은 문제라도 풀이 방식은 천차만별이므로 다른 사람의 풀이도 확인해보세요.
채점 기준 알아보기
내가 작성한 코드가 어떻게 채점되는지 알아두면 코딩 테스트 환경에 익숙해질 수 있고, 코드 제출 시 나오는 결과에 대해 명확히 이해할 수 있으므로 공부하는데 도움이 됩니다. 채점 방식은 코딩 테스트를 보는 환경에 따라 다르지만 큰 흐름 자체만 놓고 보면 비슷합니다. 여기서는 프로그래머스의 채점 기준인 정확성 테스트와 효율성 테스트를 알아보겠습니다.
정확성 테스트란?
정확성 테스트는 제출한 코드 정답을 제대로 출력하는지 확인합니다. 각 테스트 케이스의 제한 시간을 10초로 넉넉하게 두고 정확성 여부만 테스트합니다.
01단계 제출한 코드를 기준으로 모든 테스트 케이스를 전부 수행합니다.
02단계 각 테스트 케이스를 수행한 결과와 해당 문제에 대한 실제 정답을 비교하여 하나라도 다르면 오답으로 처리합니다.
03단계 정확성 테스트는 정답이 맞으면서도 각 테스트 케이스 수행 시간이 10초 이내여야 합니다.
효율성 테스트란?
효율성 테스트는 알고리즘의 성능을 확인합니다. 정확성 테스트에서는 각 테스트 케이스마다 10초의 시간을 준다고 했습니다. 그런데 10초라는 시간은 프로그램이 무한 루프에 빠질 가능성이 있는지 확인할 수 있는 수준의 시간이지 효율성을 논하기는 어려운 시간입니다. 예를 들어 효율성 테스트는 출제자가 의도한 문제의 시간 복잡도는 O(N)인데 여러분이 작성한 코드의 시간 복잡도가 O(N2)이면 오답 처리합니다. 구체적으로 말하자면 효율성 테스트는 정답 코드를 기준으로 어느 정도 배수를 두고 시간 내에 코드가 수행되는지 체크합니다.
지금까지 프로그래머스 완벽 활용 가이드였습니다. 실제 프로그래머스 환경에서 시험이 진행되는 경우가 많습니다. 문제 풀이 시 프로그래머스에서 제공하는 기능을 사전 숙지해두면 시험을 조금 더 편안하게 볼 수 있습니다.
박경록
매일 퇴근과 점심 메뉴를 고민하는 9년차 시스템 S/W 개발자입니다. 수학, 알고리즘 같은 실생활과 가깝고도 먼 학문을 좋아하고, 명확하지만 개선 여지가 있는 문제들에 대해 논의하고 사고를 개선해 나가는 과정을 좋아합니다.
김희성
현 42dot 백엔드 개발자. 이전에는 삼성SDS에서 소프트웨어 개발자, 쿠팡에서 풀스택 개발자로 근무했다. 특히 삼성SDS 시절에는 사내 SW역량테스트 강사로 활약했다. 귀찮은 거 싫어하고 집에서 자는 게 가장 좋은 백엔드 개발자다. 어려운 문제와 맞닥뜨렸을 때 더욱 불타오르는 타입. 새벽 시간에 코드짜는 걸 좋아하며 주말에 밤새 코딩하는 일을 즐기는 ESTJ.