코딩 테스트 연습
전번에 코딩 테스트를 섭스트링 함수와 스플릿 함수를 몰라서 떨어진 후로 코딩 테스트도 충분한 연습을 하고 가야 실전에서 풀수 있다는 것을 깨닿았다. 코딩 테스트에서 시간을 단축할만한 함수들이 있지만 실전에서는 그걸 검색하고 있을 시간이 없다.
그때 굉장히 간단한 누구나 푸는 문제였는데 시간내 못풀고 왔었다.
HackerRank - Online Coding Tests and Technical Interviews
HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Start hiring at the pace of innovation!
www.hackerrank.com
아마 여기 7일 완성 커리큘럽을 끝내면 어떤 코딩 테스트도 다 통과할수가 있고 앞으로 취업 걱정은 덜듯 싶다. 물론 제대로 끝냈다는 전제 하에 이야기다.
이게 시험은 어차피 쉬운거만 나온다. 좀더 정확이 말하면 정답률이 높은걸 내고 거기서 코드 깔끔하게 짜고 왜 이렇게 짰는지 설명을 잘 하는지 같은 커뮤니케이션 능력을 측정하는게 진짜 목적이다. 합격 불학격은 거기서 갈린다. 코딩 능력이 아닌 커뮤니케이션 능력이 핵심이다. 물론 풀지도 못하면 그냥 불합격이지만 말이다.
그래서 정답률이 높은 문제들만 반복적으로 풀어서 어떻게 풀었는지 설명하는 연습을 집중적으로 하면 된다. 저번에 면접에서 코딩을 어떻게 했냐고 물어보는데 여기서 내가 쉽게 설명을 잘 못해서 고배를 마신듯 싶다.
협업능력 커뮤니케이션 문제가 관건이다.
srting이 character라는 객체로 이루어진 배열이구나. 왜 string이 검색비용이 많이 드는지 알듯 싶기도 하다. 코딩 테스트 연습하면서 컴퓨터 공학적인 지식이 좀 쌓이는거 같다.
sort 이 함수도 코딩 테스트 필수 함수인듯 싶다.
지금 풀어야 하는 문제가 행렬이 있는 2치원 정사각형에 배열인데 가로행을 오름차순으로 정렬을 한다음 세로열도 오름차순이면 트루를 오름차순이 아니면 펄스를 리턴하는 함수를 만들어야 한다.
떨어뜨려놓은걸 다시 string으로 이어 붙이는 것이 필요하다. join이라는 것을 쓰면 될듯 싶다. 확인을 해보자.
잘된다. 맨 마지막에 이걸로 합쳐서 배열로 만들면 될듯 싶다.
의도했던 대로 됬다. 이거 이전에 중간에 세로열도 오름차순인지 확인이 필요하다. 이경우에는 sort한것과 sort하지 않은게 일치하면 오름차순인거고 아니면 아닌거다. 각 열에 a를 비교하는 걸 만들어야 할듯 싶다.
여기 확인이 필요하다.
C# 문법이 또 한단계 발전한거 같다. 그냥 ==을 해도 true false를 알아서 밖아 준다.
구지 하나 하나 일치하는지 확인안해도 알아서 해주는 듯 싶다. 하나라도 false가 나오면 false 그렇지 않으면 true를 반환하도록 하면 될듯 싶다.
완성이다.
문제는 맞췄는데 이게 한번에 여러개 정사각형을 주고 결과를 도출하는게 문제의 의도더라. 그래서 일단은 넘어가도록 한다. 이게 면접관이 옆에서 문제를 보는 상황이면 크게 문제가 되지 않을듯 싶다. 과정을 주로 보기 때문이다.
하나 푸는데 진이 빠지는데 하루에 3개씩해서 7일치다. 몇개는 가려 낸다고 하더라도 며칠은 걸릴듯 싶다. 다음주는 면접이 꽉차서 언제 제출해야 할지 애매하다.
그 다음 문제는 단순 합을 구하는 거여서 넘어간다. 그 다음 문제는 문제를 이해하기가 어렵다. 넘어가자. 이해하기가 어려운 문제가 있는걸 보니 실전은 조금 복불복이 될듯 싶다.
그 다음 문제도 문제의 의도를 이해 못하겠다. 큰일났다. 풀수 있는 문제가 몇게 없어서 실전이 걱정이 된다.
이해안가는 문제는는 건너 뛰었더니 벌써 6일차다. 그 다음 문제는 잘 만들어진 문제다. 이거는 문제를 설명하기가 조금 길어질듯 싶은데 일단 풀어보면서 설명을 하겠다.
잠깐 자고 풀어야 겠다. 오늘까지 하면 문제를 못알아먹은거 빼고 다 풀수도 있을듯 싶다.
일어났다. 밤낮이 꼬여서 술을 먹고 강제로 자야 겠다. 내일 면접이 두개가 있다. 일단 샤워부터 하고 오자.
아 그리고 나름 학창시절때 공부 꽤나 한편이라 공부 요령을 언급하자면 범위를 좁힌다음에 반복을 하고 양질에 예제를 따라 해봐야 한다. 특히 수학같은 경우에는 교과서에 있는 예제는 꽤 많이 반복해서 풀어 봐야 한다.
학교다닐때 느낀건데 다들 교과서를 무시한다. 주변에 보면 수학의 정석이나 개념원리 같은거를 풀던데 생각외로 교과서 퀄리티가 상당히 높은 편이다. 거기 예제만 제대로 하고 문제 한권 정도로 실전 연습 정도 하면 충분히다.
술한잔 하고 코딩중이다.