라인 코딩테스트를 운 좋게 통과해서 필기 테스트를 봤다. 

 

시험은 필기 테스트로 진행되었다.

 

필기 테스트는 전공 지식을 많이 물어본다고 하여 예전에 star을 해둔 어떤 분이 정리해 두었던 깃허브 정리글을 한번 보고, 필요한 부분을 좀 더 공부하고 들어갔다.

 

놀라운 것은 다른 기업에 합격한 친구한테 필기 테스트를 어떻게 준비했냐고 물어보니, 내가 star해둔 글을 보고 들어가서 도움을 받았다고 해서 내가 "내가 star을 해둔게 있다고?"하고 후다닥 달려가니 있었다. 

 

어렴풋이 나중에 공부해야지 하고 1-2년 전쯤에 star을 눌러놨는데, 진짜로 보게될 줄은 몰랐다...과거의 나...칭찬해...

 

 

도움이 많이 된 깃허브

github.com/WooVictory/Ready-For-Tech-Interview

 

WooVictory/Ready-For-Tech-Interview

💻 신입 개발자로서 준비를 하기 위해 지식을 정리하는 공간 👨‍💻. Contribute to WooVictory/Ready-For-Tech-Interview development by creating an account on GitHub.

github.com

 

오랫만에 전공 복습하니 기억 새록새록 나면서, 플젝을 몇 번 진행하다보니, 전공 공부가 다 쓸모가 있다는 것을 새삼 느끼게 되었다.

 

하지만 플젝을 먼저 진행하고, 전공 과목 수업을 들었으면, 진짜 빡집중하고, 교수님께 많은 질문 드릴 수 있었을 것이라는 생각이 들었고,

'왜 나는 웹 개발을 늦게 시작했을까'라는 후회도 많이 남았다 ㅠㅠ

 

문제의 구체적인 내용은 규정에 걸릴까봐 못 말하겠고, 범위는 정말 중요한 전공 과목은 다 나왔다.

 

운영체제, 네트워크, 컴퓨터구조, 데이터베이스, 알고리즘, git, 소프트웨어공학, 객체지향 등등...

운영체제하고 네트워크 부분이 많이 나왔고, 수도 코드를 읽고 결과를 예측하는 문제도 나왔다.

 

예상했던 것보다 깊게 물어봤고, 암기보다는 이해를 원하는 것 같았다.

그리고 시간이 너무 부족했...다...

 

읽고 애매모호하다고 느낀 것이 많았고, 코드도 익숙한 문법이 아니라 해석하는데 애를 먹었다.

 

하지만 차분히 풀었으면 다 풀었을 수 있었을 것 같은데, 괜히 말려서,,, 좀 못 풀었다 ㅠㅠ

 

마음을 비우고 풀어야 긴장하지 않고 잘 풀텐데, 뭔가 갑자기 라인을 꼭 가고 싶다는 마음이 생기고, 그러니까 긴장하고 조급해져서 제 실력 발휘를 못한 것 같아서 너무 슬프다... 어제 잠도 못 자고ㅠㅠ

 

그래도 정말 좋은 경험이었다. 오랜만에 시험 전날에 전공 공부하는 기분이었고, 전공 과목들을 복습하면서 다시 많은 것을 배웠다!

특히 네트워크 쪽, 웹 개발하면서 얻은 경험과 결합해서 보니 새롭게 보였다!!! 이래서 CS 지식이 중요하다하는구나 싶더라

 

다음에는 미리미리 네트워크나 운영체제 같이 중요한 과목은 공부를 좀 해놔야겠다.

반응형

오늘 라인 채용 코딩 테스트를 봤다.

 

네이버, 라인 계열은 클린 코드를 중요시한다고 하여, 그나마 클린 코드나 컨벤션을 잘 아는 JS를 모두 이용해서 문제를 풀어봤다.

 

난이도는 적당한 정도였던 것 같다.

 

1,2,3 번 문제는 구현의 난이도가 낮았지만, 알고리즘적으로 생각할 점이 있었는데, 그렇게 어렵진 않아서 함수를 분리하고, 깔끔하게 짜도록 노력했다.

 

하지만 아쉬운 점은 함수형으로 코드를 짰는데, 커링 혹은 합성 함수 쓰는 법, 고차 함수 이용법 (reduce나 map, forEach 같은?)을 좀 더 잘 숙지했다면, 코드를 더 빠르고, 예쁘게 짤 수 있었을 것이라는 후회가 든다. 좀 더 연습해야겠다.

 

4,5,6번은 알고리즘적으로 어렵다기보단 조금 까다로운 구현 문제였다.

 

4번 문제를 풀다가, 예외 사항을 처리하고, 복잡한 구현을 하다가, 중간에 어딘가에서 오류가 나서 포기할까 고민을 많이했는데, 다행히 5분 정도 더 고민하다가 코드를 조금 수정하니 잘 돌아갔다.

어제 같은 경우도 그렇고 평소에 코테를 볼 때, 꼬이면 포기하는 경향이 있었는데, 포기하지말자!!

 

그리고 코드를 함수형으로 분리하고, 컨벤션을 지키고, 주석을 달면서 짜니 확실히 중간에 꼬이거나 오류가 발생하더라도 문제가 잘 풀리는 것 같다.

 

설계를 하고 코드를 깔끔히 짜는 것이 조금 돌아가는 것 같이 보여도, 결국엔 제일 빠른 길이라는 걸 알게 되었다.

 

 

마지막 남은 1시간 동안 5번 문제를 붙잡았는데, 집중력이 떨어지고, 의욕이 떨어지니 빠르게 못 풀어서 중간에 끝나게 되었다. 

기능들을 다 구현하고 테스트하고, 로직에 따라 넣어주기만 하면 되는데 너무 아쉬웠다 ㅠㅠ

 

다음부터는 끝까지 집중해서 빡세게 코딩을 해야겠다.

 

어제 아쉬웠던 점을 보완해서 코테를 봤는데, 어제보다는 좀 더 만족스러웠다.

 

확실히 구현 부분에서 아직 JS는 익숙하지 않아서 좀 더 연습해봐야겠다.

 

그리고 node를 사용해서 테스트 코드를 돌리는 것이 훨씬 빠르고, 관리하기도 쉽다는 것을 알아냈다.

 

그리고 함수형으로 코드를 분리해서 짜면, 함수 하나하나를 테스트할 수 있어서 코드를 짜기에 정말 좋은 것 같다.

 

좀 더 연습하고, 익숙해져서 다음엔 자연스럽고 빠르게 짜서 모든 문제를 풀 수 있도록 노력해봐야겠다!!

 

그리고 어려운 문제를 빠르게 푸는 것도 중요하지만, 쉬운 문제도 빠르게 풀어보자!!!

반응형

성장했음을 느꼈지만, 그와 동시에 아쉬움이 정말 많이 남는 코딩테스트였다....

 

결과부터 말하자면 1,2,4번은 풀었고, 3번은 효율성에서 걸렸다....

 

그리고 5번은 문제는 풀긴 했는데, 테스트케이스 몇 개가 돌아가지 않아, 어디가 잘못 되었는지 찾다가, 5분 전부터 서버 먹통으로 제출이 안되서 결국 제출은 했으나 잘 돌아가는지는 모르겠다... 아마 안 돌아갈 것이라 생각이 든다..

 

좀 더 빨리 풀었으면 풀 수 있었을텐데....

 

이번 코테를 보고 느낀 점은 , 코테 난이도가 쉬워진? 건지는 모르겠는데, 이제는 풀만하다!라는 것이다.

 

알고리즘 문제를 반 년 정도 잘 안 풀었는데, 속도가 너무 느려진 것 같다.

 

내 주언어가 C++에서 JS로 간다는 것을 느낄 수 있었던 코테였다. 문제를 보자마자 JS로 풀 수 있는 방법들이 떠올랐다. 심지어 C++로 문제를 풀 때 "!==" 를 사용해서 에러가 났다 ㅋㅋ;;;;ㅜㅜ

 

하지만 요즘 JS를 주언어로 개발 및 공부를 하고 코딩테스트도 JS로 풀다보니, 원래 풀던 C++이 아닌, JS로 풀기 시작해서, 뭔가 실력이 어중간한 지점에 있는 것 같다. C++은 안쓴지 오래되서 실력이 퇴화되었고, JS는 그렇게 오래쓰지는 않아서 잘 하지는 못하는?? 두 언어에서 필요한 부분만 떼와서 코딩하고 싶다..ㅠㅠ

 

1번,2번,3번은 여유가 있어서 JS로 풀다가, 4번은 시간이 촉박하여 C++로 풀고, 5번은 JS로 풀다가 결국 못 풀었다..

 

3.5솔이긴한데.. 아마 떨어지지 않을까 싶다.. 문제가 전반적으로 쉬웠던 것 같다....

근데 요즘 느끼는 것은 문제가 쉬워지는 걸까, 아니면 내가 잘해지는 걸까?라는 생각이 들기도 하지만, 쉬웠던 것 같다...

 

이번에 많이 느낀 것은, 알고리즘 공부를 많이 쉬어서 그런지 속도가 많이 느려진 것 같다...

 

하지만 느낀 점이 왜 그런지는 모르겠지만, 알고리즘 공부를 안했지만, 오히려 좀 더 문제 요구사항이 잘 보이고, 문제가 잘 풀리는 느낌이다.

예전엔 빠르게 빠르게 코딩하며 문제를 풀었지만, 지식적으로 막히는 부분이 많았다면,

 

지금은 어떻게 풀어야할지는 보인다..

 

하지만 실제 구현에서 많이 막혔다.. 예전엔 잘 했었는데...

 

일단 막힌 부분이 

 

1(3). 이분 탐색 구현... 오랜만에 하니까 너무 헷갈려서 여기서 시간을 많이 잡아먹었다....ㅠㅠ ㅠㅠㅠㅠㅠㅠㅠ 내 아까운 문제...효율성 통과를 못해서 너무 슬프다 ㅠㅠㅠㅠ 진짜 이거 때문에 효율성 테스트 통과를 못한 것이 너무 화가 난다.... 푸는 방식은 맞았건만......아....ㅠㅠㅠㅠ이 부분 너무 아쉬운 것 같다.

 

2(1). 정규 표현식

JS 정규 표현식을 자주 쓰는 연습을 해야겠다. 많이 아쉬운 건 그냥 반복문으로 기호 찾기하면 되는데, 굳이 정규표현식 한번 써보겠다고 정규표현식 공부하느라 30분을 날린 나란 바보...ㅠㅠ 평소에 정규 표현식을 많이 써봤으면 여기서 시간을 많이 단축할 수 있었을 것 같다.

 

3(5). 코드는 말끔하게!

예전에 알고리즘 문제를 풀 때, 의식의 흐름 순으로 그냥 순차적으로 위에서 아래로 코드를 작성했었다.

이렇게 코딩을 하면 확실히 빠르긴 하나, 만약 중간에 막히거나, 잘못된 방향으로 왔을 때 되돌리기가 너무 어려웠다...

그런데 이번에 함수를 분리하며 깔끔하게 짜니, 중간에 막혀도 다시 차근차근 읽어보며 막힌 부분을 해결할 수 있었던 것 같다.

 

마음이 좀 급해도 차분하게 정리하고 깔끔하게 짜는 연습을 해야겠다. 일단 함수로 분리하는 연습이 잘 되어있지 않으니 그런 것 같은데, 연습을 좀 더 해야겠다.

 

4(2). 요구 사항 좀 제발 잘 읽자!!!

문제를 풀 때, 마음이 너무 급해서 코드 먼저 짜느라, 잘못된 방향으로 가고 있다는 것을 알게 되었다...뒤늦게 알게 되어서 다시 짤까, 아니면 그냥 이 위에다가 얹을까? 고민을 하다가 시간을 여기서 또 잡아먹었다 ㅠㅠㅠ 결국 그냥 얹는 방향으로 가긴 했지만, 요구 사항을 잘 읽었으면 더 깔끔한 코드를 작성할 수 있었을 거란 아쉬움이 든다.

 

5. 코드를 좀 더 빠르게 짜는 연습!

 

사실 3번하고 4번하고 모순되는 말이긴한데, 요즘 슬럼프?가 온건지 의욕이 너무 없어서 멍하니 앉아있는 것 같다. 멍하니 앉아서 어떻게 짤까...하는 순간들이 너무 많이 늘었는데, 다시 되돌아가더라도, 빠르게 짜는 연습을 해야겠다.

물론 너무 설계도 안하고 생각도 안해서 이상한 방향으로 가는 것은 문제겠지만, 고민하느라 시간 낭비하는 것보단, 빨리 짜고, 코드가 더럽거나 조금 잘못된 방향으로 갔다면 리팩토링 하는게 더 좋은 방법인 것 같다.

 

고민만 하다가는 아무것도 못하니까!!!!

 

 

반응형

+ Recent posts