요즘 대기업에서는 SW 개발자를 채용할 때 코딩 면접을 통해 선별합니다.
그렇다면 무엇을 기준으로 합격 / 불합격을 판단할까요?
면접에서는 일반적으로는 어떤 문제가 주어졌을 때, 이를 해결할 수 있는지를 확인하고자 합니다. (문제해결력)
Baekjoon Online Judge (BOJ)
프로그래밍 문제 해결력에 대해 연습할 수 있는 사이트가 국내외에 많이 있는데, 일반적으로는 백준 온라인 저지 (BOJ)를 사용합니다.
Baekjoon Online Judge (acmicpc.net)
프로그래밍 문제 해결 (Problem Solving, PS)의 단계를 나눠보면 아래와 같습니다. (개인적인 생각입니다.)
1. 기본적인 문법을 이용하여 문제를 해결한다.
: 조건문, 반복문, 배열, 문자열 등을 이용하여 문제 해결
2. 자료구조나 간단한 알고리즘을 이용하여 문제를 해결한다.
: 스택, 큐, 덱, 브루트포스, 정렬, 재귀 등을 이용하여 문제 해결
3. 복잡한 알고리즘을 이용하여 문제를 해결한다.
: 백트래킹, 동적계획법, 그리디, 분할 정복, 이분 탐색, 그래프 등을 이용하여 문제 해결
BOJ에서는 초보자부터 중고급자까지 다양한 문제를 보유하고 있으며, 아래와 같이 단계 / 분류별로 접근할 수 있도록 제공하고 있습니다.
BOJ를 처음 이용하는 사람은 1 단계부터 어떻게 입력과 출력을 하고, 채점을 할 수 있는지부터 익혀나가야 합니다.
각 단계의 모든 문제를 해결할 필요는 없으나 단계 당 2~3문제 정도는 풀고 넘어가는 것을 추천합니다.
프로그래밍 언어
BOJ에서 문제를 풀 때 특정 프로그래밍 언어를 이용하여 문제를 해결하는데, 일반적으로 파이썬 (Python)을 많이 사용합니다.
그 이유는 제공하는 라이브러리가 많고, 간단하게 사용할 수 있기 때문입니다.
프로그래밍 문제 해결의 2단계에서 보면 자료구조라는 것을 사용해야 하는데, 대표적으로 스택이라는 것이 있습니다.
C언어를 사용한다면 개발자 스스로 먼저 스택이라는 것을 하나하나 구현하고, 이를 사용해야 합니다.
반면, 파이썬을 사용한다면 이미 스택은 파이썬 내부에 구현되어 있고, 개발자는 이를 사용하기만 하면 됩니다.
이러한 이유 때문에 일반적으로 C언어는 추천드리지 않습니다.
만약, C언어가 편하다면 그 대안으로 C++ 에 STL (Standard Template Library)를 사용하는 것을 권장합니다.
프로그래밍 문제 해결 시에는 다양한 자료구조 및 알고리즘을 가진 라이브러리가 있는 어떠한 언어를 사용해도 상관없습니다.
다만, 코딩 면접에서는 기업에서 지원하는 언어 (C, C++, 자바, 파이썬은 대부분 지원함) 에 한계가 있으므로, 코딩 면접을 고려하고 있는 사람이라면 이 중에서 선택하는 것이 좋으며, 그 중 익히기 쉽고 사용하기 편리한 파이썬을 추천합니다.
(개인적인 경험으로는 코딩 면접 지원자의 10명 중 8~9명은 파이썬을 사용합니다.)
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[백준][Python] 1008번: A/B (1) | 2024.10.12 |
---|---|
[백준][Python] 10998번: AxB (0) | 2024.10.12 |
[백준][Python] 1001번: A-B (0) | 2024.10.12 |
[백준][Python] 1000번: A+B (0) | 2024.10.07 |
[백준][Python] 2557번: Hello World (0) | 2024.10.07 |