[내일배움코스/22회차] 코딩테스트 실력 UP 패키지 : 문제 풀이 꿀팁과 실전 모의고사 with Python 리얼 후기

IRISH·2023년 8월 17일
1

프로그래머스

목록 보기
29/29
post-thumbnail

✅ 내일배움코스에 도전한 이유

23년 7월 19일 ~ 8월 15일 동안 진행된 내일배움코스에 도전하였다.

도전했던 이유는 크게 N가지 였다.
1. 입사를 위한 코딩테스트 준비를 특정 기간동안 몰아서 해보고 싶었음
2. 개인적으로 코딩테스트 연습을 했을 때보다 실력을 향상시키기 위함

1번과 같은 경우는 사실, 부트캠프 느낌으로 받고 싶었다. 물론, 혼자서도 한다면 할 수 있겠지만, 강사가 교육도 하고 또 온라인이고 본인이 원하는 시간대에 각자 풀지만 어찌 됐건 단체로 참여하는 이 수업에 참여하였다.
그래서, 특정 기간동안 운영하는 심지어 국비지원이기는 하지만, 내가 보유한 내일배움카드의 일부를 사용해서 듣는 것이기 때문에 이 기간에 몰아쳐서 성장하는 나를 발견하고 싶었다.

2번과 같은 경우 개인적으로 자신있는 부분만 지속적으로 도전하는 나를 바꾸고 싶었기 때문이었다. 백준이든 프로그래머스든 어려운 지문이나 알고리즘을 보면, 아직 내가 도전할 단계가 아니라며 자기합리화를 하고 그 문제를 건너 뛰었다.

하지만, 채용 시즌은 점점 다가오고 IT 기업이든 아니든 어느 정도 개발을 중요하게 생각한다면 코딩테스트를 보는 것은 당연하다.

그러한 관점에서 보면, 사실 코딩테스트에 출제하는 대부분이 내가 반드시 자신 있어하는 부분이라는 보장이 없다.

나는 이 코스에 참여함으로써 [탐욕법, 구현, 최소힙/최대힙, 동적계획법, DFS/BFS/백트래킹] 등 다양한 알고리즘을 배울 수 있었고, 더불어 해당 알고리즘을 풀기 위한 [Counter, 해시, 다중정렬, 리스트, set] 등의 자료구조나 메서드를 함께 배울 수 있었다.

👀 그래서 효과가 있었어?

당연히 있었다.

특히, 문제를 해석하는 능력을 많이 기를 수 있었다.
이 문제를 해석하는 데 있어서 가장 중요한 요소는 다음과 같다.

  1. 데이터 범위나 수를 체크하라 >>> 이것을 통해서 "시간 복잡도"를 생각한다!
  2. 해당 지문에 나오는 것을 토대로 어떤 알고리즘으로 해결할지 파악한다.
  3. 지문에 정렬 조건이나, 데이터 중복에 대한 조건이 있는 여부를 파악한다.

이렇게 3가지로 크게 구분할 수 있다.

🎈 데이터 범위 체크!

그 중에서도 1번이 가장 중요하다고 생각한다.

백준이나 프로그래머스를 개인 IDE에서 풀었을 때는 잘 수행되지만, 프로그래머스 Tool로 본인의 소스코드를 그대로 제출했을 때 시간 초과 판정이 나는 경우가 무척 많았다.

그 이유는??? 데이터 범위나 수를 무시했으니까 ㅎㅎㅎ.....

똑같은 알고리즘이라고 하더라도 데이터의 수나 범위에 따라 구현할 수 있는 알고리즘의 종류가 달라진다!

그렇기 때문에, 해당 코스에서 강사 님의 강의를 보며 오히려 지문을 처음부터 쭉 읽는 것보다도 더 중요한 것이 데이터의 수나 범위라고 생각한다.

아무리 IDE에서 잘 되도, 채점자가 0점을 내면 의미가 없으니깐!!!!

🎈 지문에서 어떤 알고리즘으로 풀지 파악하라!

데이터 수 및 범위를 체크했으면, 어떤 알고리즘으로 풀어야 할 지 생각해야 한다.

만약, 리스트에서 지속적으로 최솟값 또는 최댓값을 활용해서 풀어야 하는 느낌을 준다면, 해당 문제는 힙 알고리즘을 사용해야 한다.

이것만 파악해도 문제 풀이의 거의 80%는 결정된다고 생각해도 무방하다.
물론, 이걸 생각해도 구현을 하지 못하면 의미 없음....

🎈 정렬 조건이나 데이터 중복의 조건을 확인하라!

가끔가다 문제 지문을 잘 읽고, 시간 복잡도도 잘 산출하고, 어떤 알고리즘을 파악을 해서 주어지는 테스트 케이스의 대부분은 맞춰냈음에도 불구하고,일부 테스트 케이스가 틀리게 되는 경우가 발생한다.

그런 경우는 일반적으로 지문에서 특히, 그 중에서도 입출력 예에 정렬이나 데이터 중복을 파악할 수 없는 상태로 만들어 놓기 때문이다.

그래서, 자칫 보면 아... 정렬 안해도 되나 보네? 데이터 중복이 허용되지 않나 보네? (혹은, 그 반대로 생각할 수 있다.)라고 생각하고 풀다 보니 틀리게 되는 것이다.

앞으로는 그런 실수를 반복하지 말자!!!

📃 수료증

수료증
약, 한 달이라는 기간 동안 열심히 수료한 증표!!!

✨ 추천

실실적으로 이 강의는 내게 많은 도움을 주었습니다.

이 강의를 통해 데이터 범위나 수가 주는 힌트, 지문이 주는 힌트를 비롯해 자료구조, 메소드, 알고리즘 등 개인적으로 공부했을 때보다 더 많은 배우게 됐습니다.
비록, 국비로 운영되지만 저는 그 가치 이상이라고 생각합니다.

심지어, 이 과정 중간 개인적으로 보았던 기업 코딩테스트에서 합격하는 좋은 성과까지 이루었습니다.(이전에는 기업 코테 통과해본 적 없음)

따라서, 여러분도 열심히는 하지만 좋은 성과를 못거두었다거나, 코딩 테스트 실력 향상을 원하신다면 해당 내일배움코스 과정을 통해 Python 위주의 코딩 테스트 실력을 up하기 바랍니다.

profile
#Software Engineer #IRISH

1개의 댓글

comment-user-thumbnail
2023년 8월 17일

좋은 글 감사합니다.

답글 달기

관련 채용 정보