인턴 지원 !
캐치라는 사이트에서 서류 접수가 하루밖에 남지 않은 인턴을 발견했습니다. 코딩테스트 한 번 한 번이 귀하다는 생각을 가지고 후다닥 지원서를 접수했습니다. 어떤 환경에서 코딩테스트를 진행하는지 확인하던 와중에 사용해본적이 없는 사이트인 해커랭크에서 코딩테스트를 본다는 것을 알게 됬습니다.
해커랭크...??
응애 나 애기 해커랭크 ㅎ
해커랭크 사이트를 사용해본적이 없었고 낯선 환경에서 바로 코딩테스트를 진행하게 된다면 불이익이 생길 것 같아 일단 사용해보자! 라는 마음을 가지고 들어가보았습니다. 회원가입을 진행하고 쉬운 문제 1,2 개를 풀면서 긴장을 풀려고 문제를 들어간 순간....
?????
아하 ㅎ
어마어마한 코드를 신경써야 되는 부분이 아닌, 프로그래머스와 비슷하게 솔루션 코드를 작성하면 되는 플랫폼이었고 프로그래머스 레벨1, 레벨2를 거의 다 풀어본 저는 쉽게 적응할 수 있었습니다 ^ㅡ^
코딩테스트 시작
코딩테스트를 시작하고 코딩문제 3, 객관식 1, API 사용문제 1 이렇게 5 문제를 2시간에 풀어야 했습니다. 저는 코딩문제 2, 객관식 1 을 풀었는데 1번 문제는 메모리 부족과 시간초과, 2번 문제는 시간 초과가 나와 사실상 1 문제도 맞지 못하는 슬픈 상황으로 마무리 했습니다... ㅠ
1번 문제
1번 문제는 아래와 비슷한 문제가 나왔습니다. 아래 문제의 경우 대부분 BFS 문제로 생각하지만 알고보면 DP 라는 엄청난(?) 함정이 있는 문제입니다.
정답률 28.34% 의 어마어마한 문제....!!
https://www.acmicpc.net/problem/1890
BFS 로 구현해주었지만 메모리 초과를 받아 뭐가 문제일까 살펴보니 굳이 Queue 에 저장해줄 필요가 없었던 문제였습니다. 좌표 문제만 나오면 일단 BFS 를 사용하고 Queue 에 저장하려고 했던 저에게 신선한 충격을 줬던 문제였습니다.
굳이 Queue 가 필요없을 수도 있고, 어떤 방향은 갈 필요가 없다 등의 문제를 제대로 이해했다면 최적화를 하기 위한 여러가지 아이디어를 떠올릴 수 있던 문제였습니다.
2번 문제
일반적인 DP 문제였습니다. 하지만 조건이 까다롭다고 생각했고, DP 를 열심히 공부한 친구들이라면 금방 풀 문제였습니다. 전 DP 가 아닌 재귀 호출로 먼저 구현을 하다보니 시간 초과를 받았습니다.
3번 문제
시간 복잡도를 체크하는 문제였습니다. 정보처리기사 공부를 하던 분들이라면 쉽게 풀 수 있을 문제였습니다. 코드가 나오고 코드에 대한 시간 복잡도를 객관식 보기 4개 중에 선택하면 됩니다.
후기
문제를 처음보고 "이런 문제구나!" 라고 생각하는 자세보다 더 중요한 것을 배웠습니다. 입력된 예시와 문제 조건을 보며 "이렇게 구현하면 메모리가 부족하구나", "이렇게 구현하면 시간 초과를 받을 수 있겠다" 라는 점을 대수롭지 않게 생각하고 맞는 방법 같으면 일단 구현해보는 습관을 고치게 된 테스트였습니다.
이번 테스트 이후 실제로 일명 종만북 1,2 권을 구매했습니다. (제주도 거주로 3일이 지나도 못 받고 있습니다...ㅠㅠ) 열심히 공부하고 정리하면서 합리적인 코드를 작성할 정도가 될 수 있도록 열심히 노력하겠습니다...!