원래 나는 코딩테스트를 따로 포스팅하지 않았다.
이유는, 알고리즘 효율을 따져야 하나 싶기도 했다. 요즘 컴퓨터 성능이 워낙 좋아서 딱히 알고리즘 효율을 생각 안해도 된다는 말을 들어서 그렇기도 했다. 원래 코테 공부의 용도는 네이버 부스트캠프에 들어가려고, 구현 연습 및 알고리즘 암기 정도로 생각하고 있었다.
그런데,
1. 이번에 라이브 코딩 테스트를 보면서, 어려운 문제를 푸는 것 보다는 평이한 문제라도 문제 해결 과정 및 코드를 설명하는 능력이 중요하다고 느꼈다. 그도 그럴게, 프로그래밍은 혼자하는 것이 아니고 남들과 코드를 공유해야 하는 분야이기 때문이다. 공유를 하면 당연히 남들에게 내 코드의 알고리즘도 잘 설명해야겠지?
지금까지의 공부 방식은 이러한 능력 향상에 도움이 1도 되지 않는다고 생각했다. 테스트를 보는 동안에 긴장했던 탓도 있었지만, 내가 어떻게 푸는지도 생각도 나지도 않았으며, 당연하게도 시험관에게 그것들에 대해서 제대로 설명도 못했다. 말 그대로 폭망... 테스트를 망친 후, 이런 부분에 대해서 소홀했던 과거를 반성하며, 문제 하나를 풀더라도 내 생각을 알고 푸는 것과 정리하는 시간이 필요하다고 느꼈다.
2. 작년에 회사에 근무하면서, AWS가 과금되는 것들을 보면서, 알고리즘 효율이 필요할 수도 있겠다고 생각을 했다. 하지만, 이때까지만 하더라도 나와는 상관이 없는 문제라고 생각하고 있었다. 퇴사 후 별 생각없이 코테 등 공부를 하고 있었는데, 이번에 라이브 코딩 테스트를 보면서 아차 싶었다. 시간 복잡도 설명을 하라는 지시에 제대로 설명도 못했다. 왜냐하면 내가 짜는 코드에서는 시간 복잡도 문제는 그냥 테스트만 통과하면 되기 때문이었다. 이번 시험을 바탕으로 생각해보면 데이터 사이언스 업무에서 데이터를 수집하고, 데이터를 활용한 알고리즘을 짜는 부분에 대해서, 실시간으로 코드가 돌아갈텐데, 비효율적인 코드를 작성한다면 문제가 많이 생길터... 적당히 알고는 있어야 했었다.
그래서, 코딩테스트 포스팅의 목적은 다음 두가지
- 1. 문제 해결 방식에 대한 설명 능력 향상
- 2. 알고리즘의 효율에 대한 이해(시간복잡도, 공간복잡도)
2번 부분에 대해서는 포스팅마다 넣을수도 있고, 효율성이 강조되는 문제에서만 넣을수도 있다. 형식과 관련된 문제는 포스팅 하면서 차차 생각해볼 예정이다.
'정리 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 입국심사 (0) | 2023.10.08 |
---|---|
[프로그래머스] N개의 최소공배수 (0) | 2023.04.30 |
[프로그래머스] 행렬의 곱셈 (0) | 2023.04.19 |
[프로그래머스]하노이의탑 (0) | 2023.04.17 |