2022.08.20 작성
1. 시험 난이도 - 평이
1차 테스트와 달리 2차 테스트에서는 8문항이 출제되었다.
그리고 1차 테스트에 비해서 난이도가 낮았던 것 같다.
코딩 테스트 경험이 적어서 일반적인 경우에 포함되는지는 모르겠는데 쉬운 문제와 어려운 문제의 난이도 차이가 심한 편이었다.
8문제 중 쉬운 5문제는 알고리즘 문제 풀이를 어느정도 해봤으면 쉽게 접근하여 아이디어를 떠올리고 구현할 수 있는 문제들이었다고 생각한다.
나머지 3문제는 심화된 알고리즘을 배워놓지 않았으면 풀기 어려운 스타일이었다고 생각한다.
단순히 아이디어를 떠올리는 것이 어렵다기보다는 특정 알고리즘들을 익히고 있어야 바로 연결해서 풀이할 수 있지 않았나 싶었다.
어쨌든 어려운 문제들의 난이도도 1차의 어려운 문제들에 비하면 상대적으로 쉬운 편에 속한다고 느꼈기 때문에, 합불을 가리는 것은 어려운 문제들을 얼마만큼 잘 풀이했는지에 달려 있지 않을까싶다.
정확한 통계는 아니지만 부스트캠프 지원자들이 모인 오픈카톡방에서 투표한 결과에 따르면(투표 참여율이 낮아 모집은 작다) 8문제 중 6,7솔이 가장 많고 그 뒤를 5솔이 뒤따르고 있다.
시험을 잘 치르지 못한 사람들이 투표하지 않거나 오픈카톡에 포함되어 있지 않을 가능성이 높으므로 이를 고려하면 대략 5~6솔이 평균치 되는 것 같다.
지원 분야별로도 차이가 존재했다.
인기가 가장 많은 것으로 보이는 추천 시스템(RecSys) 지원자들의 7솔 비율이 높고, 인기가 가장 적은 것으로 보이는 자연어 처리(NLP) 지원자들의 7솔 비율이 가장 낮았다. 컴퓨터 비전(CV) 지원자들의 7솔 비율은 중간을 차지했다.
나는 NLP 지원자라서 그나마 작은 희망을 품고 있을 수 있겠다.
2. 문제 유형
언급했다시피 문제들의 정확한 정보를 공개하는 것은 불가능하기 때문에 최대한 느낌 위주로 설명하겠다.
문제 수가 적지는 않으니 나름 다양한 유형이 출제된 것 같다.
정확한 구분은 어렵지만 쉬운 문제들은 특정 알고리즘을 적용하는 것보다는 문제에서 요구하는 내용을 그대로 구현할 수 있도록 만드는 느낌에 가까웠다.
물론 어떤 함수나 자료구조를 사용할지는 대충 추려지는 스타일들이긴 했다.
보통 문제들을 풀면 테스트 케이스는 모두 맞지만 히든 테스트 케이스에서 막히는 경우가 많은데, 실제 풀이할 때는 히든 테케를 볼 수가 없으니 예상 결과와 다른 결과를 받을 가능성도 꽤 큰 것 같다.
또 하나의 특징은 시간 복잡도에 관해 크게 신경 쓸 필요가 없었던 문제들이었다는 것이다.
특히나 쉬운 문제들에 대해서는 히든 테케에서 효율성까지 따져 문제될만한 여지가 딱히 없었던 것 같다.
그냥 생각나는 아이디어를 그대로 구현하기만 해도 효율성에서 걸려 감점을 받게 될 만한 문제는 딱히 없었다.
어려운 문제들은 그래프 위주로 출제된 것 같다.
정확히 그래프 유형이 뭔지 아직 몰라서 말하기가 조금 어렵긴 하지만, 알고리즘 공부를 할 때 대부분의 사람들이 한 번씩은 본 이코테의 '최단 경로 알고리즘' 이후의 내용들을 공부했으면 도움이 됐을 것 같다.
특정 알고리즘을 써야한다는 것보다는 그래프에 대한 개념을 모르거나 관련 알고리즘을 공부해본 적이 없으면, 일반적인 BFS나 DFS를 알고 있더라도 사실상 풀기 불가능한 수준이었다고 생각한다.
어설프게 알면 테스트 케이스는 통과하더라도 채점할 때는 하나도 정답 처리가 안 될 수도 있는 스타일들이라고 느꼈다.
또한 문제를 풀이하는 과정에서 함수를 만들어야 될 때가 있는데, 프로그래머스 내의 정답 제출 방식에 익숙하지 않으면 알고리즘을 알고 있다고 하더라도 원하는 결과를 만들어내기 어렵다.
나도 어떤 방식으로 풀이하는지 확실한 아이디어가 있었고 시간 복잡도에 관한 계산도 끝마친 상태에서 코드를 작성하기 시작했는데, 막상 제대로 return 되는 값들이 없어서 한참 시간을 날려먹고 결국 풀이하지 못했다.
따라서 어려운 문제들을 잘 풀기 위해서는 그래프나, 여기에 필요한 2차원 리스트의 구조, 그리고 이것들을 함수로 구현했을 때 return 되는 값들에 대한 정확한 이해가 필요했던 것 같다.
3. 시험 환경
당연한 얘기지만 시험은 독립된 공간에서 응시해야 한다.
또한 투명한 컵에 담긴 물을 시험 중에 마실 수 있다.
1차 때는 시험 시작 전까지 화장실을 다녀올 수 있었는데, 2차에서는 시험 시작 10분 전부터 이동을 통제했다.
그리고 감독관님과의 채팅을 통해 실시간으로 카메라에 내 얼굴을 비춰 신원 확인을 하고, 카메라를 360도 회전시키며 시험 환경을 검사 받았다.
시험 환경에 대한 제약이 빡빡하지는 않은 것 같고 상식적인 수준만 지켜줘도 되는 것 같다.
아무래도 코딩 테스트다보니 여러 개의 모니터를 사용하는 응시자도 많은 것 같다.
나도 최근에 모니터를 구매해 노트북에 연결하여 사용하고 있어서 관련된 내용을 미리 찾아봤다.
듀얼 모니터나 그 이상을 사용하는 경우, 단 하나의 모니터만을 사용할 수 있고 나머지 화면은 수건이나 천으로 가려야 한다.
주변 환경을 검사할 때 나머지 화면을 제대로 가려 놓았는지도 잘 보여드렸다.
또한 두 시간 진행되는 시험인데 한 시간 후부터 제출 및 퇴장이 가능했다는 것 외에는 특별한 내용이 없다.
4. 시험 준비
블로그 게시물을 보면 알겠지만 다양한 유형의 문제들을 꾸준히 풀어왔다.
처음에는 주로 유형에 상관 없이 하나씩 차근차근 풀어나가는 느낌이었고, 이후에는 부족한 유형이나 좀 더 공부해서 확실하게 정리하고 싶은 유형들을 하루에 몇 개씩 정해서 풀어나갔다.
지금 생각해보면 확실히 유형별로 정리하면서 난이도를 높여가는게 좋은 것 같다.
사실 동일한 난이도로 측정된 문제라고 할지라도 막상 알고리즘을 모르면 풀기가 너무 어려운 것들이 많기 때문에, 기초적인 내용을 배우고 이를 응용해보면서 이해한 내용들을 최대한 체득하는 것이 중요한 것 같다.
결국 중요한 것은 지금 보고 있는 문제를 잘 푸는 것이 아니라, 유사한 아이디어가 필요한 다른 문제를 만났을 때 적용하는 것이기 때문이다.
나는 개인적으로 공부를 하기도 하고 스터디를 진행하기도 했다.
스터디를 진행하는 동안에는 유형별 문제를 같이 정해서 풀고 풀이를 공유 및 피드백했다.
이 과정에서 자신의 풀이로 정답이 나오지 않는 사람이 있으면 집요하게 달라 붙어서 디버깅했다.
출력시 어떤 것이 문제인지 굉장히 불친절하게 알려주는 프로그래머스 환경에서, 이러한 연습과 습관이 꽤나 도움이 되었다고 느낀다.
지금까지 공부한 유형들을 대략적으로 정리해보면,
'그리디, 구현, 브루트 포스, DFS/BFS, 유니온 파인드, 우선순위 큐, 스택, 다이나믹 프로그래밍, 정렬, 이분 탐색, 백트랙킹, 정렬, 해시' 등이다.
특정 알고리즘을 알아야되는 유형들은 그 기본은 착실히 공부했고, 심화된 알고리즘(ex, 다익스트라, 플로이드 워셜 등)은 아직 제대로 숙지하지 못했다.
어차피 시험에서 크게 활용될만한 것들은 아니었던 것 같은데, 앞으로 마주칠 코테에서는 어떨지 모르지 확실하게 다져놓을 계획이다.
영 잘 푼 것 같지도 않고 열심히 공부한 것에 비해 성장하지 않은 것 같아서 많이 아쉬웠다.
다음 주에 프로그래머스 인공지능 데브코스에 지원할 예정인데 이정도 실력으로..는 아직 많이 부족하지 않을까 그런 생각이 많이 든다.
하여튼 결과 발표가 금방 나는 편이니까 열심히 공부하면서 기다려야겠다.
좋은 소식을 남길 수 있으면 지금보다 자세한 나의 수준(스펙) 등을 공유할 계획인데 꼭 그럴 수 있길 바란다.
네이버 블로그에서 작성했던 글을 옮긴 것입니다
'취업 > 부트캠프' 카테고리의 다른 글
프로그래머스 인공지능 데브코스 4기 코딩 테스트 응시 후기(비전공자) (8) | 2022.10.02 |
---|---|
네이버 부스트캠프 AI Tech 4기 최종 합격 후기!!(비전공자) (8) | 2022.10.02 |
네이버 부스트캠프 AI Tech 4기 1차 테스트 응시 후기(BAT)(비전공자) (0) | 2022.10.02 |
네이버 부스트캠프 AI Tech 4기 지원(비전공자) (0) | 2022.10.02 |
[SSAFY 8기] 싸피 8기 불합격 후기(비전공자) (0) | 2022.10.02 |