먼저, ICT 인턴십 코딩테스트는 필수가 아니다. 코딩테스트를 실시하는 기업에 지원했을 경우에만 서류 평가에 반영되기 때문에 응시해야 한다. 다만 기업 별로 코딩테스트를 실시하는게 아니라 한 번만 응시하면 된다는 장점이 있다.
코딩테스트를 보는 곳은 해커랭크이다.
HackerRank - Online Coding Tests and Technical Interviews
HackerRank is the market-leading coding test and interview solution for hiring developers. Start hiring at the pace of innovation!
www.hackerrank.com
코딩테스트를 실시하는 기업에 지원했을 경우, 서류지원 이후에 이메일로 해커랭크 응시 링크를 받아볼 수 있다.
공지사항에도 나와있겠지만 샘플 테스트를 진행하여 해당 플랫폼의 인터페이스를 익혀야 된다.
이번 상반기의 코딩테스트에서는 총 5문제가 나왔으며, 제한시간은 6시간이다. 물론 6시간 전에 문제를 다 풀었다면 빨리 제출하고 종료할 수 있다.
주의할 점
코딩테스트를 실시한 이후부터는 해당 브라우저에서 창 이동을 하면 안된다. 정확히는 창 이동을 할 경우, 이를 감지하기 때문에 해당 기록이 남게된다. 일반적인 검색정도는 가능할 것이라 생각하여 브라우저를 잠시 이동했으나 코딩테스트 화면에서 경고창이 떠서 조금 놀랐다.
채점 방식
각 문항별로, 테스트 케이스가 존재한다. 적으면 10개 많으면 14~15개 정도 되는 것 같다. 각 케이스를 모두 통과하지 못했다고 해서 점수를 못 받는 것은 아니다. 하지만 분명 구현한 코드에 따라 통과할 수 있는 케이스 개수가 달라질 수 있다. 어쨌든 총 점수가 지원한 기업으로 전달되기 때문에 최대한 많은 케이스를 통과하는 코드로 제출하는 것이 좋을 것이다.
출제 문항
1번) 배열 문제
주어진 배열을 통해 요구하는 값을 반환하는 문제이다. 단순한 문제일 수 있으나 구현한 알고리즘의 시간복잡도에 따라 히든 케이스를 통과하지 못할 수 있다.
2번) 배열 문제
마찬가지로 주어진 배열을 통해 요구하는 값을 반환하는 문제이다. 이 또한 문제 자체는 어렵지 않으나 시간복잡도에 따라 케이스를 통과하지 못할 수도 있다. 최대한 효율적으로 검색하는 코드를 작성하는 것이 중요하다.
3번) 그래프 문제
연결리스트 방식으로 그래프를 구현한 뒤, DFS를 사용하면 풀 수 있는 문제로 보였다. 필자는 이 부분에서 막혀서 2개의 케이스만 통과했다. 그래프 문제를 많이 풀어보었다면 충분히 풀 수 있을만한 문제로 보였다.
4번) 구현 문제
특별한 알고리즘 능력이 요구되는 문제는 아니며, 문제를 충분히 읽어본 뒤 어떠한 값을 출력해야 하는지 파악하는 것이 중요했다. 문제는 길기 때문에 어렵다고 판단할 수 있지만 차분하게 읽어보면 생각보다 어렵지 않다. 배열과 해쉬 맵을 사용해서 문제풀이에 필요한 데이터들을 저장하고 활용하였다.
5번) 그래프 문제
문제가 복잡하다고 느낄 수 있지만 예시 그림을 통해 쉽게 이해할 수 있는 문제이다. 2차원 배열을 통해 그래프를 구현하고, DFS 알고리즘을 사용하여 풀 수 있는 문제였다. Set 자료구조를 활용하여 두 그래프의 일치여부도 확인해야 하는 문제였다.
느낀 점
처음으로 코딩테스트를 실시해보았다. 기업 코딩테스트에 비해 조금은 편한 환경에서 실시하였고, 문제 난이도도 비교적 쉬운 편이기는 했다. (일반적인 기업 코딩테스트에 비해 쉬울 것 같다는거지 문제가 아예 쉽다는 뜻은 아닙니다!)
코딩테스트를 응시하면서 느낀건 역시 실전감각을 키우는게 중요하다는 것이었다. 백준, 프로그래머스 같은 곳에서 여러 문제를 풀어보는 것도 중요하지만 계속 테스트를 보면서 어떠한 문항들이 주로 출제되는지 정리하고 내가 부족했던 영역을 점검해볼 필요가 있다. 필자는 이번 코딩테스트를 보면서 그래프 문항과 배열 그리고 구현에 관련된 문제들을 많이 풀어보고, 정리해야 함을 느꼈다. 또한 카카오 기출문제 같이 난이도가 꽤 있는 문제들도 도전해봐야 실력이 늘 수 있겠다는 생각이 들었다.
서류 지원 결과
ICT 인턴십 3개와 현장실습으로 1개, 총 4개의 회사에 인턴지원을 했지만 모두 서류에서 탈락했다. 현장실습은 ICT 인턴십에 비해 지원대상 규모가 작기 때문에 적어도 면접을 볼 줄 알았고, ICT 인턴십은 학교 추천을 받았기에 못해도 1 군데는 붙을줄 알았다. 하지만 모두 서류에서 탈락하는 경험을 하였다. 전부 떨어지고나니 상실감보다는 나의 경혐과 포트폴리오 등을 좀 더 객관적으로 볼 수 있게 되었다. 아직까지는 많이 부족하다는 것을...!
개인적으로도 이번 인턴십을 지원하면서 부족했던 점이 있었다.
- ICT 인턴십의 모든 기업에 대한 직무와 여러 상세내용들을 꼼꼼히 확인하지 않았다. 따라서 분명 내가 놓친 기업들이 있었을 것이다.
- 다음에는 모든 기업에 대한 내용을 확인하면서 나에게 맞는 직무를 채용하는 기업들을 선별하고자 한다.
- 직무와 관련된 경험을 제대로 어필하지 못했다.
- 교내 팀플 수준의 팀 프로젝트로는 나의 몰입과 문제해결 경험을 표현하기에 부족했다.
- 좀 더 능동적으로 문제를 해결하는 프로젝트를 진행함으로써 나의 직무역량을 강화해야 한다.
'My thoughts' 카테고리의 다른 글
우아한테크코스 2연속 서류 탈락을 한 뒤에 쓴 회고 글 (0) | 2024.12.09 |
---|---|
합격하는 개발자의 자소서, 이력서 특징 5가지 정리 (0) | 2024.09.20 |
언어보단 그림을 (0) | 2024.08.28 |
2023 개발공부 회고록 (1) | 2023.12.17 |
개발자가 되기 위한 나의 첫 시작 (0) | 2022.04.02 |