DHistory

[회고] Programmers Level 1 완료 본문

회고

[회고] Programmers Level 1 완료

ddu0422 2023. 8. 11. 10:49

한 단계 성장

조금씩 Level 1 문제를 풀다가 본격적으로 시작한 시간은 23. 8. 1 ~ 23. 8. 11이다.

파이썬 문법을 더 자유자재로 다룰 수 있게 되었고 문제를 푸는 여러 방식을 터득했다.

 

왜 Programmers Level 1인가?

대부분 코딩테스트 시험은 프로그래머스와 비슷한 플랫폼에서 시험을 치르기 때문에 익숙한 환경이 필요했다.

오랜만에 코딩테스트를 준비하기 때문에 파이썬과 구현 문제에 익숙해질 필요성을 느꼈다.

적절한 난이도와 다른 사람 풀이를 볼 수 있는 장점이 있기 때문이다.

다른 사람 풀이는 추천순으로 되어있기 때문에 대부분의 사람들이 풀이하지 못한 방법이 대부분 상위를 차지하여 인사이트를 얻을 수 있기 때문이다.

 

어떤 방식으로 알고리즘을 풀었는가?

문제 풀이는 한 가지 방법이 아닌 여러 가지 방법으로 풀 수 있다.

코딩테스트를 효율적으로 공부하기 위해 아래 방법을 실행했다.

 

1. 제한 시간(1시간)을 두고 문제를 고민한다.

2. 제한 시간 내에 문제를 푸는 경우

   2-1. 4로 이동

3. 제한 시간 내에 문제를 풀지 못한 경우 

  3-1. 다음날이나 다른 문제를 풀고 1번부터 다시 진행한다. 2회 차에도 풀지 못한 경우 3-2로 넘어간다.

  3-2. 다른 풀이를 본다.

  3-3. 풀이를 해석하며 내가 이해한 방향으로 리팩터링 한다.

4. 정답 코드를 제출 후 더 나은 풀이(시간복잡도가 더 빠르거나 다른 방식으로 리팩터링 할 수 있는지 확인)가 있는지 다른 풀이를 살펴본다.

5. 4에서 터득한 내용을 복습 후 다른 문제를 풀 때 적용한다.

 

위 방법을 진행하기 전 전제조건을 세웠다. 숏 코딩은 배제하고 이해하기 쉬운 코드를 작성하는 것이다.

 

이유는 풀이가 올바르지 않은 경우 디버깅을 머리와 손으로 해야 하는데, 숏 코딩에 익숙하지 않은 나로서는 이해하기 쉬운 코드를 작성하는 편이 내 강점을 활용할 수 있으리라 판단했기 때문이다.

이로 인해 풀이가 올바르지 않았을 때 디버깅을 빠르게 하여 올바른 풀이를 작성할 수 있었다.

 

앞으로의 방향은?

원래는 Prgrammers Level 2를 풀 생각이었다. 그러나 유형별로 문제를 풀 수 없었다.

우선 유형별 풀이에 익숙해지기 위해 BaekJoon으로 넘어갈 생각이다.

목표는 각 유형별로 실버5부터 골드 1까지 풀어보는 것(한국어 제공)이다. 순서는 '이것이 코딩테스트다'의 목차 순으로 진행할 예정이다.

 

지금부터 긴 시간이 걸리겠지만 우선 하나의 유형(그리디)을 끝낼 예정이다.

한 단계 한 단계 나아가다 보면 최종 목표에 도달할 수 있을 것이다.