안녕하세요. Limky 입니다.
오늘은 삼성전자, 삼성SDS SW개발 직군의 필수 관문인 SW역량테스트 후기에 대해서 잠시 이야기 해보려고 합니다.
예전 취업시절 삼성 그룹을 가고 싶은 마음에 나름 삼성 그룹 SW역량 테스트를 준비하면서 얻었던 경험과 개인적인 TIP을 공유하도록 하겠습니다.
보통 SW역량테스트는 3시간 안에 2문제를 줍니다. 정확히 예전 2019 상반기 합격 컷은 2문제 만점 아니면, 1문제를 1시간 안에 푼 경우가 합격을 하였습니다. 저는 당시 회사를 다니고 있었기 때문에 시간적 여유가 많지 않아 1문제를 맞출 정도의 훈련을 했고 2번째 문제는 버리는 식으로 준비를 했습니다. 왜냐면 2019년 상반기 전까지는 2문제 중에 1문제를 완벽하게 맞추면 무조건 합격을 했기 때문이죠...주변에 삼성가신 지인 분들도 다 그랬구요..하지만 저는 1문제만 맞췄고, 결국 탈락의 고배를 마셨습니다....(첫번째 문제는 2시간을 소요해 풀었고, 나머지 1시간에 대해선 두번째 문제를 풀지 않고 첫번째 문제 대한 테스트케이스를 보강하고 튀는 로직이 없는지 검수했었음;;)그렇다면 이제 준비하시는 여러분은 무조건 2문제를 맞춰야 한다는 마음으로 준비를 하시는게 좋습니다...(개인적으로 삼성SW역량테스트는 중상 또는 상에 속한다고 생각함)
왜 2문제를 맞춰야 하나요..? 예전에 비해 취업난이 더 심해지고, 중고 신입들도 많이 지원 합니다. 거기에 대학원생들도 대학원 레벨 직군이 아닌 하향 조절해서 지원을 하고...요새는 삼성 그룹 SW역량 테스트만 특화되어서 교육하는 알고리즘 학원들도 넘쳐납니다...따라서 합격 컷이 높아졌습니다.. 제가 SW역량테스트를 마치고 당연히 합격 한줄 알고 운영했던 2개의 면접 스터디에서의 스터디원들도 1개만 맞춘 사람은 전부 탈락했고, 2개를 모두 맞추던, 1개를 1시간정도 안에 풀던, 아니면 공채 시즌이 아닌 상시 SW역량 테스트에서 2문제 이상을 맞춘 사전 합격자들 만이 합격을 했기 때문이죠....(저는 상시 테스트에서도 1개만 맞췄네요..;;)
아무튼!! 2개를 맞추겠단 각오로 임하셔야 합니다.
자 그럼 문제 유형에 대해서 이야기 해보겠습니다.
문제 유형은 보통 시뮬레이션, DP, 탐색(DFS, BFS), 경우의 수(순열,조합) 등의 개념이 반복적으로 출제되고 있습니다.
역대 삼성 기출문제들을 전부 보아도, 이 개념안에서 돌고 돕니다. 따라서 위 개념에 대한 이해는 완벽해야 하며 관련 문제들도 많이 풀어보셔야 합니다. 저는 백준 사이트에서 역대 기출문제를 전부 풀어보았고, 삼성그룹에서 만든 삼성 SW expert academy 에서도 문제를 익혔습니다. 특이한 점은 탐색에 대한 한가지 개념을 가지고 활용하는 문제가 아니라 요새는 탐색, 경우의수 등 2가지 개념을 융합해서 풀어야 되는 문제들도 많이 출제되고 있는 것 같습니다. 따라서 각 개념들을 조합하여 전체적인 문제를 해결해 나갈 수 있는 능력을 원천적으로 키우셔야 할 것 같습니다.
또 기억하셔야 할 것은 삼성SW역량 테스트에서는 10개의 테스트케이스를 주지만, 히든 케이스라고 해서 채점할땐 100개의 테스트케이스를 가지고 채점을 합니다. 여기서 1개라도 삑사리 나면 탈락입니다.ㅎㅎ 따라서!! 10개 테스트 케이스를 다 통과했다고 하더라도 무조건 맞췄다는 보장은 없을 수도 있습니다. 그래도 왠만한 케이스는 10개 테스트 케이스 안에 주는 것 같긴 하지만....그래도 방심하지 말고 로직에 약점이 있는 부분이 없는지 반드시 검수하셔야 합니다.
자 이제 마지막으로 코딩 팁을 조금 드리자면...전역변수를 가지고 프로그래밍을 한 경우 꼭 전역변수의 초기화가 필요한지 필요하다면 반드시 초기화 작업을 잘하는 버릇을 만들어야 합니다. 처음에 한가지 케이스에 대해서 접근하고 나중에 여러 케이스를 돌렸는데 불구하고 이상하게 안되는 경우가 있습니다. 로직에도 문제가 없다면 이것은 보통 초기화를 제대로 안해줘서 그럴 수 있습니다. 자 그리고 비효율적인 코딩은 자제해야합니다. 예를 들어 모든 로직에 A-Z까지 수행할 필요가 없습니다. 즉, 아래 로직을 더이상 수행할 필요가 없다면 로직을 탈출 시켜 알고리즘 성능을 향상시켜야 합니다. 너무 느리면 time out으로 탈락입니다;; 그럼 끝으로...문제를 완벽하게 이해하고 요건을 정확하게 파악하셔야 합니다. 긴장해서 문제를 빠르게 읽고 무작정 코딩에 들어가면 반드시 문제에 특이한 조건이나 예외 조건을 누락하여 마지막에 낭패를 봅니다. 따라서 문제를 천천히 읽고 문제에서 요구하는 요건을 하나도 빠짐없이 인지하고 있는 상태에서 코딩을 하셔야 합니다.
자 그럼 정리 하면....아래와 같이 정리하겠습니다.
여러분은 꼭 원하시는 결과를 얻으시길 바라면서.... 더 자세한 질문이나 여러 궁금하신게 있으시면 메일 주세요(setupman82@gmail.com)
1. 2개 맞출 각오로 준비하고 문제를 풀어라(1개 맞춰도 합격은 할 수 있으나 그것은 취업 상황과 삼성 신규채용 인원 수에 달려있고, 그 시즌의 경쟁상황에 따라 다를 수 있음...)
2. 시뮬레이션, DP, 탐색(DFS, BFS), 경우의 수(순열,조합) 반드시 개념 숙지하고 역대 문제들 다 풀어봐야함!!
3. 10개 테스트 케이스 말고도 다른 케이스가 있는지 고민, 검수하는 과정을 꼭 한다.
4. 문제에 대한 정확한 요건 파악은 아무리 강조해도 지나치지 않음
5. 초기화 작업을 꼼꼼히 체크하기, 로직 중단을 통한 성능 향상 노리기!!
감사합니다.
'Algorithm' 카테고리의 다른 글
c++ 선택정렬, 삽입정렬, 버블정렬 (0) | 2019.04.04 |
---|
댓글