https://career.programmers.co.kr/competitions/2858
데브매칭 코테에 응시해보았다.
이번 데브매칭에서도 역시 카카오페이, 쿠팡, 당근마켓, 핀다, 오픈서베이 등 다양한 회사들에 지원할 수 있도록 기회를 제공해준다.
2시간 (120분)동안 알고리즘 3문항, SQL 1문항이 출제된다.
데브매칭 테스트 규정은 아래와 같으니 참고하자.
외부 IDE 사용 가능
구글링 가능
간식 섭취 가능
빈 종이와 볼펜 메모 사용 가능
문항 캡쳐 및 자리 이탈 불가
듀얼모니터 사용불가
계산기, 노래 금지
노래들으면서 치려고 했었는데 큰일날 뻔했다.
다행히 구글링도 가능하고 정답여부도 알려주며, 외부 IDE도 사용가능하다.
이번에 나만 그런건진 모르겠는데 14:00가 됐는데도 불구하고 테스트 입실이 불가능했다.
14:03이 되고 나서야 테스트 입실이 가능했고, 입장했을 때 남은 시간은 1시간 56분이었다...
버그 걸린건지 모르겠는데 이런 점은 좀 아쉬웠다.
간단한 후기를 남겨보도록 하겠다.
주관적인 난이도
문제 | 종류 | 난이도 |
1 | Algorithm | Silver V |
2 | Algorithm | Silver I |
3 | Algorithm | Silver II |
4 | SQL | 프로그래머스 Level 3 |
문제를 1(AC) ->2(WA) -> 4(AC) -> 3(AC) -> 2(AC) 순으로 풀었다.
1번 (AC) (14:13)
Tag: Implementation, String
문자열 그룹이 주어질 때, 특정 문자열이 그룹에 포함돼있지 않으면 그냥 반환하면 된다. 그룹에 포함돼있으면 적절한 규칙에 따라 해당 문자열을 찾고 반환한다. 문제 이해하는데 꽤나 시간이 걸렸다. 규칙이 한눈에 잘 안들어왔기 때문이다. 규칙이 어렵다기보단, 아마 시험 테스트 입실 과정에서 생긴 문제때문에 당황한 상태에서 문제를 봐서 그런 것 같다.
문자열 그룹 수가 10만개였기 때문에 O(logN)으로 자동으로 정렬된 상태로 삽입해주는 set 자료구조를 사용했으며, 열심히 구현하고 나니 AC를 받았다.
구현 난이도는 높지 않긴 한데, 조금 귀찮기도 하고 문자열 그룹 크기도 커서 Bronze I 이 아닌 Silver V 정도라 생각한다.
2번 (AC) (15:12)
Tag: BFS
N*M 그래프가 주어지고, 같은 영역에 있는 서로 다른 국가들끼리 전쟁을 친다. 전쟁이 끝나고 가장 넓은 영토를 가지게 되는 국가의 영토 넓이를 반환해야 하는 문제였다. 제한이 크지 않아 BFS 열심히 돌린 후에 처리하면 되는 문제였는데, 맞왜틀을 좀 했다. 자꾸 80점이 나와서 조금 당황해서 SQL 문제로 넘어간 후, 3번까지 맞추고 2번으로 다시 넘어왔다.
나중에 다시 보니까 알파벳이 주어지지 않은 상태에선 애초에 탐색을 안했어야 됐는데 탐색을 한 것이 문제였다. 그 처리를 해주고 나니 100점으로 바뀌었다. 2번 풀자마자 테스트를 종료했다.
BFS 문제는 보통 백준에서 Silver II를 받게 되는데, 이 문제의 경우 각 영역 내에서도 별도의 처리가 필요했기 때문에 Silver I이라 생각한다. Gold 까지는 아닌 듯하다.
3번 (AC) (15:05)
Tag: DP
7 세그먼트 디스플레이 문제가 나와서 바로 내 깃허브에서 각 숫자 별 7세그먼트 디스플레이 상태 코드를 긁어왔다.
근데 문제를 제대로 읽고보니 그럴 필요가 없는 문제였다... 그냥 각 수의 상태가 아닌 개수만 알면 되는 문제였기 때문에 0~9까지는 개수를 일일이 세주고, 10 이상의 수는 /, % 연산자로 적절히 처리해주어 개수를 저장해주었다.
이제 dp를 이용하여 특정 개수일 때 만들 수 있는 수의 경우를 메모이제이션해주면 끝!
문제를 잘못 읽어서 좀 삽질을 했다. 특정 개수 이하의 경우의 수를 모두 구하는 줄 알았는데, 특정 개수를 정확하게 만족하는 경우만 구하는 문제였다. 또한, 수가 0으로 시작하는 경우는 제외해야 하는데 숫자가 딱 0인 경우는 포함했어야 됐기 때문에 그에 대한 예외처리를 해주고 100점을 받았다.
dp 점화식이 간단해서 Silver II 정도라 생각한다. 백트래킹 풀이는 아마 시간초과를 받을 듯하고, 브루트포스는 가능할 수도 있겠다.
참고로 이 문제의 심화 버전이 존재하는데 심심하면 풀어보도록 하자.
https://www.acmicpc.net/problem/22251
4번 (AC) (14:40)
Tag: JOIN
특정 케이스에 해당되지 않는 경우는 제외하라길래 RIGHT OUTER JOIN을 사용했다.
중복 컬럼 개수 세는 방법이 헷갈려서 구글링으로 이를 검색했다... 검색 후 GROUP BY로 적절히 처리해주었더니 AC를 받을 수 있었다.
문제를 제대로 안읽은 케이스, 맞왜틀한 케이스가 좀 있었는데 꼼꼼히 읽고 처리하는 것의 중요성을 다시 한 번 느꼈다.
졸업예정자 및 졸업자가 아니어서 제의가 올진 모르겠지만...
그래도 면접 제의 오는 회사가 한군데라도 있길 기원하며 포스팅을 마치겠다.
'PS > My Diary (PS, 대회후기)' 카테고리의 다른 글
[221119] 2022 쿠팡(Coupang) 테크 신입 개발자 채용 코딩테스트 후기 (12) | 2022.11.19 |
---|---|
[221008] 2023 KAKAO BLIND RECRUITMENT 코딩테스트 2차 후기 (16) | 2022.10.08 |
[220924] 2023 KAKAO BLIND RECRUITMENT 코딩테스트 1차 후기 (25) | 2022.09.24 |
[PS] UCPC 2022 본선 후기 (7) | 2022.07.23 |
[PS] UCPC 2022 예선 후기 (0) | 2022.07.02 |