그 동안 삼성 SW 직군 시험 공부를 위해서 책을 사보거나 유료 강좌를 많이 들으시기도 하고

여러 Online Judge 사이트에서 공부하셨을텐데 너무 수준이 높아서 도움이 안되거나 좌절하신 분들도 있는데

 

수능에는 EBS 강의 처럼 삼성에서 비슷한 수준의 문제의 Online Judge 시스템과 강의를 일반인들에게 공개하였습니다.

 

역량 테스트를 목표로 하시는 분들은 하루에 한문제씩만 풀어봐도 좋을 결과가 있을것 같습니다.

강의도 있으니 따로 책을 사보실 필요가 없고 커뮤니티도 있으니 문의하면 메토링도 받을 수 있을 것 같습니다.

 

https://www.swexpertacademy.com


#삼성_소프트웨어_역량_테스트

 

그 동안 회사일이 바빠서 글을 못썼습니다.

일단 최근 시험이 오전 오후 2문제씩 4문제였는데 지난번에 2문제만 살펴봤고

오늘 나머지 2문제 중 1개를 생각해 보겠습니다.

 

시험을 보신분 들이 이 글을 보실것 같지는 않은데 재수?나 다음 시험을 준비하시는 분은

꼭 기출문제를 구해보세요. 모든 시험의 기본은 기출문제입니다.

 

남은 2문제 중 바이러스 관련 문제가 있었지요?

이 문제는 전형적인 BFS문제 였습니다.

 

바이러스를 시작점으로 BFS를 돌려서 더 이상 갈 수 없는 때 까지 돌리면 되고

바이러스가 복수 개이니 각각 돌리면 되는 문제입니다.

 

하지만 이 문제는 벽을 쌓을 수 있으니 그 벽의 위치에 따라 바이러스가 퍼질 수 있는

범위가 달라지게 됩니다.

 

여기서 많이 실수를 하는 것이 현재의 바이러스 위치를 보고 벽을 쌓을려고 하면 너무 어려운 문제가 됩니다.

판의 크기가 최대 8x8 인것도 그렇게 하지 않아도 된다는 것을 알려주는 것입니다.

 

현재의 바이러스 갯수나 벽의 위치에 따라 달라지겠지만

(8x8)C3 = 약 4만가지경우, 각 위치에서 벽을 쌓을 위치를 3개를 고르고 (조합이겠지요?)

그 경우에 각각 BFS로 바이러스를 퍼뜨려서 보고 남은 위치가 가장 많은 것이 답입니다.

 

바이러스 위치에 따라 바둑두는 것 처럼 벽을 쌓아 보려고 하면 너무 어렵게 접근하는 하는 것입니다.

 

일단 위처럼 풀고 시간 초과가 되면 Memoization을 이용하여 시간을 줄이는 방법을 생각하면 됩니다.

여러가지 아이디어가 생각이 나지만 이 시험은 이렇게만 해도 Pass가 되었을 것입니다.

 

#삼성_소프트웨어_역량_테스트

지난주 시험 잘 보신 분들은 면접이 있지요?

기사 보니 코어 과목 위주로 질문은 한다고 한다던데

 

컴퓨터 구조, OS, 소프트웨어 공학, 네트워크, DB 이런 것일텐데

그냥 읽어보지 말고 물어볼만한 것을 찍어서 적어 놓고 반복해서 읽어보는 것이 중요합니다.

그리고 답변할때 ~ 하는 것 이라고 하지 말고 ~ 하는 시스템, ~ 하는 알고리즘, ~ 하는 방법

이렇게 답변하는 것이 좀 더 좋습니다.

 

지난주 시험 4문제 중 보험설명 문제가 있었지요?

문제는 찾아서 보세요.

 

예전에 2차원 문제 설명할때 겹치는 도형 설명한것 기억 나시나요?

그것과 유사하게 풀면 되는데

 

1. 먼저 최대 설명 건 수 가 N 이라고 하면 NCN 부터 NC1 까지 모든 경우를 찾은 후에

2. 겹치지 않는 것을 구하고

3. 겹치지 않는 것에 대해 건당 보수를 더 해서 가장 큰 것이 답이었지요.

 

여기서  2. 겹치지 않는 것을 구하는 방법이 예전에

2차원 상에서 여러 사각형의 겹치게 그리고 그 넓이는 구하는 것이 있었지요?

그때 원래는 플레인 스위핑이라는 알고리즘을 쓰는 것인데 사각형의 면적이 작으면

사각형의 내부를 1씩 채우고 그 수를 세면 된다고 했는데

 

이 문제가 그것과 아주 유사합니다.

1. 에서 구한 모든 조합의 경우에서 각 경우를 1씩 채워 보면 겹치는 것을 쉽게 알 수 있습니다.

 

플레인 스위핑 처럼 수식으로 하면 기간이 아무리 길어도 같은 시간에 결과가 나오지만

이렇게 채우는 것은 기간이 길면 길수록 채우는 시간이 많아지기 때문에 시간이 많이 걸리나

이 문제 처럼 짧은 기간에 대한 것은 쉽게 풀 수 있습니다.

 

이 문제가 조금 더 어렵게 나오려면 하루에 2건을 처리 할 수 있다 라고 하면 채울때 2까지는

허용하면 쉽게 문제가 풀리게 됩니다. 이때는 오히려 플레인 스위핑 방법이 더 어려울 수 도 있습니다.

 

완전탐색인데 겹치는 것을 구하는 팁만 알면 쉽게 구할 수 있는 문제였습니다.

 

 

#삼성_소프트웨어_역량_테스트

+ Recent posts