코딩테스트

현대자동차 소프티어 2차 인증평가 후기(코딩 공부 주절주절..)

RyanKwon 2021. 8. 28. 16:20
728x90


내 블로그를 계속 본 사람은 알겠지만 내가 지금 가장 관심있는 분야는 자율주행이다. 아무래도 점점 화물운송량은 많아질 일 밖에 남지 않은 듯 하고 화물운송에 있어서 자율주행의 활용성이 부각되는걸 감안했을 때 자율주행분야는 지금보다 훨씬 더 커질 수 있을 것 같아서.. 아무튼 그게 내가 처음으로 소프티어를 접하게 된 계기이고 또 그게 내가 왜, 이 아직은 자료가 모자란 소프티어에서 계속해서 문제를 푸려는 이유이다. 그리고 지난번에 소프티어 2차 인증평가가 오늘 있을거라길래 신청을 해놓고 그래도 문제를 좀 잘 풀면 좋을 것 같아서 오늘 아침엔 일찍 일어나 컨디션 조절도 좀 했다. 그리고 시험이 두시부터였지만 미리 들어가있어야지..라고 생각하고 1시 20분에 웹사이트를 들어갔는데 이게 왠걸, 시험 시간이 한시부터 세시까지였다 ...!!!!이런 미틴

엄청나게 당황했고 또 아직 마음의 준비가 안된상태였어서.. x됐다 싶었지만 뭐 어쩔 수 없으니까 바로 로그인하고 인증평가를 시작했다.

지금 문제를 올려도 되나 모르겠어서, 간단히 내용만 설명하면

첫번째 문제는 임의의 숫자들이 문제로 주어진다. 같은 숫자가 있는 블럭을 모두 지우고, 애니팡처럼 윗쪽에서 블럭이 또 내려오는데 그런식으로 총 3회를 반복해서 같은 숫자가 있는 블럭을 지우면 된다. 그런데 이렇게 블럭을 지울 때 마다 점수를 계산해야한다. 그렇게 하고선 그 최종 값을 구하면 되는데 .. 가장 큰 최종값을 구해야 한다. 다시 말하면, 매번 블락을 지울 때마다 그 다음 회차에서 얻게되는 점수가 달라질 것 아닌가? 따라서 매 번 나올 수 있는 경우의 수를 모두 구해서 3회 반복이 끝났을 때의 점수를 모두 알아내고 그 중 가장 큰 값을 리턴해야한다.

퍽 어려운 문제였다. 딱 봐도 재귀문제여서 그렇게 풀려고 노력을.. 햇는데 워낙 사이사이에 코드가 길게 들어가기도 하고 내가 원래 재귀가 약한부분이기도 해서 문제를 푸는데 애로가 있었다. 마지막에는 뭐 조건 하나를 붙이면 예제 1번만 맞고 그걸 떼면 예제 2번만 맞고 이런 상황이 생겨서 조금만 수정하면 될 것 같다는 느낌을 받았다. 그런데 시간이 이미 그때 2분 이렇게 남은 시점이었어서 뭔가..할 수가 없었다 흑흑... 이건 무조건 틀림...슈밤 흑흑 한 5분만 있었어도 print같은거 써서.. 어케어케 잘 확인해봤을 것 같은데 좀 아쉽다. 거의 맞게 푼것같은데.,, 약간 카카오 2018 코딩테스트에 있던 블락문제에서 두단계정도 올라간 느낌이라고 보면 될 것 같다. 그거랑 비슷하긴 한데 거기에서는 한번 그냥 블락들 삭제하고 채우고 다시 삭제하면 됫엇지만 이번에는 삭제-> 채우고를 3회 반복 후 점수만 넣고, 이전 상태에서 다른 경우의수를 계산 후 또 점수계산. 풀만한데~ 어려워 ,,,ㅋㅋㅋㅋ numpy같은 모듈을 쓰면 조금 더 쉽게 풀 수 있겠지만 그건 반칙같아서.


두번째 문제는, 어... 첫번째 문제를 보고 어렵길래 이거부터 풀었더니 잘 기억이 안나네,, 아. 점 들이 주어지는데 그 점들을 포함하는 가장 작은 직사각형의 크기를 반환하는 문제이다. 물론 모든 점들을 포함해야한다거나 이런건 아니고 인덱스가 있어서 모든 종류의 점들을 적어도 하나씩 포함하는 직사각형을 만들어야한다. 이것도 아마도 bfs같이 재귀로 풀어야하는 것 같다. 모든 경우의 수를 찾아서 일일히 계산해보는 수 밖에 없는듯. 내가 이 문제를 스택으로 풀었나 재귀로 풀었나 생각이 안 나는데 어.. 그냥 모든 경우의 수를 구한다음 넓이를 비교해서 풀면 된다. 사이사이에 sort를 야무지게 써서 아마도 만약 너무 큰 인풋이 들어오면 에러가 날 가능성이 크지만 일단 일반적인 경우에는 다 잘 풀릴거라고 생각이 든다. 이거는 풀자마자 코드를 실행했을 때 예제를 둘다 맞긴 해서 바로 제출해버렸다. 뭐 되겠지 뭐 ....

이렇게 평가가 끝났는데, 내 후기는... 아,, 구현문제 참 더럽다,, 카카오도 구현문제는 정말 더럽게 내는편이지만 현대차도 그건 마찬가지인것 같다. 지난번 1차문제는 2번문제가 구현이였고 (아직 1번은 정답이 안나왔지만..) 그때도 풀이가 엄청 더러웠었다. 그리고 이번엔 1번이 구현문제인데 음.. 더러웡...ㅋㅋㅋㅋㅋ물론 조금 더 코드를 보고 필요없는거 지우고 정리도 하면 좀 간결해질 순 있겠지만.. 그래도 더럽다.

2주쯤 지나면 문제를 공개 하는 것 같아서, 그 때 다시 풀어보고 해설을 올리던가,,해야지

728x90