본문 바로가기

Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
더보기
Archives
관리 메뉴

삼성전자 SW 역량테스트 B형(Professional) 합격 및 후기 본문

일상 이모저모

삼성전자 SW 역량테스트 B형(Professional) 합격 및 후기

알광(Algwang) 2019. 2. 7. 11:30

사실 1월 말에 합격 통보를 받았지만 연휴, 귀차니즘 등등으로 이제 글을 쓰..


드디어 3번만에 B형 합격 !!


지난(2018년) 7~8월부터 최대한 stl을 안쓰고 문제를 해결하는 연습을 나름 했지만 2번의 도전 모두 결과는 좋지 않았다.


그래서 다시 처음부터 여러 자료를 찾아보다가 박트리님의 블로그에 올라온 글(https://baactree.tistory.com/53)을 보면서


최적화를 위해 필수 배경지식과 기법들이 있다는 것을 알게 되고 공부하며 사용해보고


알고리즘 스터디(스터디는 https://open.kakao.com/o/g0fl7MN에서 갓분들과 만들어서 진행)를 하면서


같은 문제라도 여러 사람의 풀이를 보고 시간복잡도를 계속 따지며 줄이는 시도를 했던 것이 가장 큰 도움이 되었다.


다시 박트리님 블로그 내용으로 돌아와서 필수 배경지식으로 써주신 내용들 모두 도움이 되지만 처음 읽을 때 가장 뜨끔했던 내용은 해싱이다.


예를 들어 맵에 점들이 있다고 할 때 맵의 크기는 50000*50000 정도로 주어진다.


이 때, 어떻게 점을 저장할 것인가?라고 물었을 때


50000*50000 배열을 만들거야. 라고 하면 당연히 터진다.. 전체를 도는데 무려 25*10^8..


그렇기에 다음과 같은 아이디어를 생각할 수 있어야 한다.


100*100의 맵 500*500개로 나누어서 arr[500][500]에 저장하고 같은 범위에 있는 점들을 링크드리스트로 연결하면 된다.


이런 방식으로 계속해서 어떻게 해결할 수 있을지 생각하고 stl없이 실제로 구현하는 것이 B형을 준비할 때 가장 중요하다고 생각한다.


시간을 효율적으로 사용하는 것 또한 중요하다.


B형은 1문제에 무려 4시간이 주어진다.


하지만 무작정 부딪혀보고 "아 이건 안되네.."하며 다른 방법을 시도해보기에는 짧은 시간이다.


그래서 1+2+1이라는 방법을 사용하는 것을 추천한다.


1+2+1은 4시간을 1시간 2시간 1시간으로 나누는 것이다.


첫 1시간은 문제를 분석하고 어떤 방법으로 해결할 것인가를 생각하는 시간이다.


이 때는 키보드에 손을 전혀 대지 않고 나눠주는 연습장과 펜만을 사용한다.


생각나는 방법을 모두 적고 그 때의 시간복잡도, 장/단점 등을 생각하며 사용할 방법을 정한다.


다음 2시간동안 구현을 한다. 아무리 자세하게 생각했어도 의도치 않은 에러가 날 수도 있고


잘 구현되지 않는 부분이 있을 수 있기 때문에 가장 많은 시간을 할애한다.


마지막 1시간은 최적화 시간이다.


내 코드를 살펴보며 더 최적화할 수 있는 부분이 없는지 확인하는 것이다.


코드를 다시 살펴보다보면 "내가 여기서 왜 정렬을 이렇게 했지?" 혹은 "이 부분은 더 줄일 수 있지 않을까?"라는


생각이 자주 들게 되기 때문에 매우 중요한 시간이기도 하다.


다음 단계인 C형은 많은 정보가 없어서 어느 정도의 최적화를 요구하는지 정확히는 모르겠지만


꼭 따고 싶은 레벨이기 때문에 열심히 도전해야겠다.


이제 C형 준비 시작 !!

'일상 이모저모' 카테고리의 다른 글

주중 / 주말 계획표 짜기 !  (0) 2018.12.23
12-7 시작 !  (0) 2018.12.19
노트북 구매 완료 !  (3) 2018.12.16
Comments