본문 바로가기

잡담

2019 상반기 삼성전자 무선사업부 SW 역량테스트 후기

다른 블로그나 사이트에 기출문제 해설을 한 곳은 많지만, 합격한 사람이 시험을 보는 중에 어떤 생각을 하면서 문제를 풀어나갔는지에 대한 글은 잘 보이지 않아서 간단히 작성해보았다.

 

 

S직군은 서류에 합격하면 SW 역량테스트를 보게 된다.

 

SW 역량테스트는 오전/오후로 나눠서 시험을 친다.

DS가 오전에 보고 CE/IM은 오후에 봤다.

 

내가 본 CE/IM 시험은 시뮬레이션 1문제, DFS/BFS를 이용하는 완전 탐색 1문제가 출제되었다. (DS는 시뮬레이션 2문제가 출제되었다고 한다)

 

시험이 시작되고 먼저 첫 번째 문제 설명부터 읽었다.

처음으로 시뮬레이션 문제 설명을 보았는데, 대충 어떤 식으로 풀어야 할지만 생각하고 다음 문제로 넘어갔다.

완전 탐색 문제를 읽고 이 문제를 먼저 풀어야겠다고 생각했다. (원래 DFS/BFS에 조금 더 자신이 있었다)

여기까지 5분 정도 걸렸다.

 

DFS로 여러 개의 바이러스를 놓을 수 있는 장소를 선택하고, BFS로 바이러스가 전부 퍼지는데 걸리는 시간을 구해야겠다고 생각하고 접근을 했다. (백준 사이트에 올라온 문제로 설명한다.)

 

어떤 방식으로 구현할지 생각하고 코드를 작성하기 시작했다. (여기까지 15분이 지남)

1문제를 잘 푸는 게 중요하므로 5분, 10분이라도 코드를 작성하기 전에 문제에 대해 분석하고 고민하는 게 좋다고 생각한다.

괜히 어떤 방식으로 풀어나갈지 정리가 되지 않은 상태에서 코드를 작성하다가 잘못 삐끗하면 시간이 더 낭비될 수 있다고 생각한다.

 

먼저 머리속으로 정리하고 코드를 작성하는 것이 어렵다면, 연습을 하자.
코딩 테스트 준비할 때, 알고리즘 문제를 풀었다고 다 안다고 생각하며 넘어가지 말고, 꼭 나중에 다시 풀어봐야 한다.
이 문제를 15분 안에 어떻게 풀어야 할지 머릿속으로 정리가 되려면 어떻게 생각해야 했었을까? 등을 생각하며 계속 연습하자.
코딩 테스트를 준비하면서 문제를 푸는 것과 실제 코딩 테스트의 가장 큰 차이점은 문제의 난이도나 여러 환경이 아니라 시간이 정해져 있다는 것이다.
풀었던 문제를 다시 보면서 더 빨리 풀려면 어떻게 접근해야 했었을지를 의식적으로 생각하면서 연습을 하자.
(내가 합격할 수 있었던 가장 큰 이유가 이것이라고 생각한다.)

 

미리 생각해둔 방식으로 코드를 구현하고 테스트 케이스를 넣어보았다. (여기까지 총 50분 지남)

 

결과가 몇 개는 제대로 나오고 몇 개는 제대로 나오지 않았다.

 

틀린 테스트 케이스를 종이에 직접 적고 각 과정마다의 상황도 적어가면서 확인했다.

그리고 코드에서도 각 과정을 출력하면서 비교해보았다.

근데 종이에 적은 결과와 출력되는 결과가 달랐다. (다르게 나올 이유가 없었다)

약간 말렸다고 생각했지만 숨 한번 고르고 차분히 다시 생각했다.

알고 보니 종이에 테스트 케이스를 옮겨서 적을 때 잘 못 옮겼었다. (이거 때문에 1시간을 날렸다)

차분히 한다고 했는데도 이런 실수가 발생해서 시간이 많이 낭비되었다.

다시 코드를 수정하니 모든 테스트 케이스 결과가 제대로 나왔다.

몇 개의 테스트 케이스를 직접 만들어서 테스트해보니 결과가 원하는 대로 나왔다. (여기까지 총 2시간 지남)

후~

 

이때 2가지 중 하나를 선택해야 했다.

 

1. 남은 1시간 동안 테스트 케이스를 추가해가며 푼 문제를 더 완벽하게 하기

2. 그냥 남은 1문제 더 풀기

 

후자를 선택했다. (처음에 1번 문제를 읽었을 때, 어떻게 풀어야 할지 조금 감이 왔었기 때문)

 

먼저 R연산과 C연산을 각각의 함수로 구현한 뒤에, 메인 함수에서 조건문에 따라 R연산 또는 C연산을 반복하면 될 거라고 생각했다. (백준 사이트에 올라온 문제로 설명한다.)

(여기까지 2시간 10분 지남)

 

그러고 나서 코드로 구현하기 시작하고 테스트 케이스를 넣어보았다. (여기까지 2시간 40분 지남)

 

다행히 처음에 생각한 구현 방법이 맞았는지, 테스트 케이스의 결과가 모두 원하는 대로 나왔다.

몇 개의 테스트 케이스를 직접 만들어서 테스트해보니 결과가 원하는 대로 나왔다. (여기까지 2시간 45분 지남)

 

마지막으로 코드가 잘 저장되었는지 확인하고 제출했다. (여기까지 2시간 50분 지남)

 

남은 시간 동안은 '후~ 다행이다'라고 생각하면서 시간을 보냈다.

 

그리고 시험을 보고 10일 정도 후에 결과가 나왔다.