코딩테스트, 무엇인지 알아봅시다.

소프트웨어 개발자로 일하기 위해 공부 중인 당신! 알고리즘이라는 녀석을 마주치지 않을 수 없을 것입니다. 많은 기업들은 개발자 채용 과정에 코딩 테스트 전형을 넣어 지원자들이 알고리즘에 대한 지식과 기본적인 코딩 역량을 갖추고 있는지 판단하려 합니다. 주어진 시간 내에 알고리즘 문제를 정확하게, 충분히 빠르게 동작하는 코드로 풀어낼 수 있는지 평가하는 것이죠.

흔한 개발자의 먼지 낀 키보드 …

알고리즘 이란?

알고리즘이란 무엇일까요?
여러분에게 0이 주어졌고, 덧셈 연산 만을 사용해 100이라는 숫자를 만들어야 하는 상황이라고 가정해봅시다. 만약 1을 더하는 방법 밖에 모르는 사람이라면 100을 만들기 위해 100번 1을 더해서 문제를 해결할 수 있습니다. 그러면 문제 해결에 사용된 알고리즘은 1을 100번 더하는 것이 됩니다. 100을 더할 줄 아는 사람이면 100을 1번 더해서 문제를 해결할 수도 있겠죠. 이렇듯 문제를 해결하는 절차를 나타낸 것을 알고리즘이라고 할 수 있습니다. 하나의 문제를 해결하는 데 사용되는 알고리즘은 셀 수 없을 정도로 많으며, 주어진 상황에 따라서 어떤 것은 효율적인 알고리즘일 수도, 비효율적인 알고리즘일 수도 있게 됩니다.

알고리즘 문제란?

그러면 코딩 테스트 전형을 치를 때 우리가 풀어내야 하는 알고리즘 문제란 무엇일까요?
자, 테스트가 시작되었습니다. 주어진 시간은 30분이네요. 문제를 읽어봅시다.

정수 N, S (0≤N,S≤100)가 주어졌을 때, 정수 N에 덧셈 연산 만을 사용해서 정수 S를 만들어내는 방법들 중 덧셈 연산 횟수가 가장 적을 때의 횟수는 얼마인지 구해야 합니다. 덧셈 연산에 사용할 수 있는 정수는 N이 50 이상인 경우 1, 5, 10, -10, -5 ,-1, N이 50 미만인 경우 1, 7, -1 입니다.

처음에 테스트 케이스 수 T(1≤T≤1000)가 주어지며, T개의 라인에 N S 입력이 주어집니다.
T개의 라인에 정답을 출력하는 프로그램을 작성하세요.

제한 시간 : 1초
메모리 제한 : 64MB

아.. 머리가 아파옵니다. 😖 우리는 주어진 조건에 따라서 원하는 결과를 내놓는 프로그램을 만들어야 합니다. 천천히 다시 읽어볼까요? 주어지는 입력은 무엇이 있나요? T, 그리고 T개의 N S 입니다. 그리고 여러가지 제약 사항들이 있네요. 주어진 N의 값에 따라서 덧셈 연산에 사용할 수 있는 숫자가 달라집니다. 사용할 수 있는 숫자에 음수가 있는 걸 보니 N이 S보다 큰 상황도 있을 수 있겠네요.. N과 S가 같은 경우는요? N과 S가 같은 경우가 없다는 말은 없으니 N과 S가 같을 수도 있습니다. 생각해 낸 알고리즘으로 제한 시간 1초 내에 최대 1000개의 케이스를 해결할 수 있는지, 주어진 메모리는 충분한지도 따져봐야겠군요..

이처럼 우리는 주어진 문제를 읽고 정확한 정답을 내는 프로그램을 작성할 수 있도록 필요한 정보를 파악해서 정리해야 하고, 제한 시간 내에 답을 구할 수 있는 효율적인 알고리즘을 생각해낸 뒤, 코드를 작성해내야 합니다. 이 모든 것을 30분 안에 해결한 뒤에 제출해야 합니다.

코딩 테스트 준비 방법

코딩 테스트는 보통 다양한 난이도로 여러 개의 문제가 주어지고, 모두 풀어내기에 빡빡한 시간이 주어집니다. 완전히 생소한 유형의 문제가 출제되는 경우는 거의 없기 때문에 코딩 테스트를 준비하기 위해서는 자주 출제되는 유형의 문제들을 다양하게 풀어보고, 시간 내에 풀어낼 수 있도록 연습하는 과정이 필수적입니다. 시간이 촉박한 상황에서도 문제를 정확하고 빠르게 풀어낼 수 있도록 엉덩이 무겁게, 꾸준히 준비하신다면 반드시 좋은 결과가 찾아올 거라고 믿습니다.😉

코딩 테스트 연습 장소

다양한 알고리즘 문제들을 풀어보고 연습할 수 있도록 서비스를 제공하는 웹사이트들이 있습니다.

스스로 경험하며 얻은 깨달음을 공유하기 좋아하며, 세상이 필요로 하는 코드를 작성하기 위해 노력하는 개발자입니다.

“코딩 테스트, 어떤 테스트인가요?”의 2개의 댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다