코딩테스트/알고리즘

새로운 계정과 함께하는 1일 1백준 도전기

긱북이 2024. 3. 21. 22:39

잔디듀밸리를 꿈꾸며

 

기존 계정을 삭제하고 새로운 백준 계정을 생성한 이유

 

컴퓨터공학과에 입학하며 처음 만든 백준 계정을 탈퇴한 후, 새로 시작하기로 결심했다.

회원 탈퇴는 간단히 버튼 한 번으로 해결되지 않고, 문의를 통해 탈퇴 의사를 직접 밝혀야 했다.

 

처음엔 아깝다는 생각도 했었다.

그렇지만 이제까지 알고리즘 공부를 오래하거나 깊게 하지 않았고,

solved.ac의 랭크 시스템에 혹해서 낮은 랭크 문제들로 경험치를 올렸던 흔적을 지우고 깔끔하게 새로 시작하고 싶었기 때문이다.

 

공부든 게임이든, 마음에 들지 않으면 처음부터 다시 시작하는 편이다.

그래서 미련이 남지 않아 탈퇴하기 전에 계정 프로필 스크린샷조차 남기지 않았다.

 

그렇게 내 새로운 계정이 완성되었다.

'1일 1백준' 목표를 세웠지만, 저번 주에 이미 작심삼일로 시원하게 날려 주었다.

그럼에도 불구하고 다시 시작하는 것이 이번 목표의 핵심이다.

 

 

 

앞으로의 코딩테스트 공부는 어떻게?

 

 

쉬운 문제만 계속 푸는 것이나, 한 문제를 하루 종일 붙들고 있는 것 모두 바람직하지 않다.

일반적으로 문제를 1시간 정도 고민해보고 어려우면 풀이를 찾아 공부하는 것이 좋다고 한다.

사전 지식 없이 무작정 돌진하기보다는, 알고리즘과 자료구조에 대한 공부를 병행해야 한다.

 

초반 부분만 공부하고 책장에 꽂혀 버린 코딩테스트 책을 꺼내서, 차례대로 공부하며 예제 문제들을 풀어 보면 좋을 것 같다.

바쁜 날의 경우, 브론즈에서 실버 초반 난이도와 같은 쉬운 문제를 풀면서 스트릭을 이어 나가려고 한다.

 

이제까지 풀었던 5개의 문제는 전부 브론즈 2~3으로, 푸는 데 큰 어려움이 없어 점점 단계를 올릴 생각이다.

기업의 코딩테스트를 목표로 하는 경우, 골드 3~4정도를 풀 수 있으면 된다고 한다.

 

조사해 본 구체적인 코딩 테스트 공부 방법은 다음과 같다.

  • 알고리즘 문제의 기본 - 입력과 출력
    • 다양한 종류의 입력과 출력 방법 익히기
      : 한 줄 ↔ 여러 줄 변환, 2차원 배열, 효율적인 입출력 등
    • 문자열 관련 내장 함수 학습
      : 문자열 인덱스 조작 등
      (문제에서 많이 활용할수록 자동으로 쓰게 된다.)
  • 자료구조 공부
    • 그림 형태의 자료를 코드로 구현할 수 있어야 함
    • 단독 유형이 아닌, 알고리즘의 재료로써 사용됨
  • 알고리즘 공부
    • 시간 복잡도(Big-O 표기법) 학습
    • 코딩 테스트에 자주 나오는 시간 복잡도 암기
    • 공부 순서
      • 스텍, 큐, 우선순위큐, Deque, 해시맵, 문자열
      • 이진 탐색, DFS/BFS, 재귀함수
      • 그래프, DP
  • 공부 후 결과 분석
    • Big-O 표기법으로 시간 & 공간 복잡도 분석하기
    • 다른 사람의 답안과 비교하기
    • 문제 푸는 데 걸린 시간 측정하기

 

그동안 백준의 맞았습니다! 표시만 보면 그만이라고 생각했다.

시간 복잡도나 다양한 종류의 입출력 함수 등 하기 싫어 미뤄 두었던 공부들을 블로그와 함께 해 보려고 한다.

 

 

 

1일 1 백준을 도와줄 도구

 

지속적인 동기부여가 있다면 어떤 일이든 오래 이어나갈 수 있을 것이다.

백준의 잔디 심기가 생각났지만 직접 복사해 올리는 것은 귀찮고 번거로운 일이었다.

 

내가 귀찮아하는 것들은 보통 남들도 귀찮아하는 법이다.

'백준허브' 크롬 확장프로그램을 사용하여 깃허브 레포지토리와 연동하면, 문제를 해결할 때마다 자동으로 코드가 커밋된다.

 

백준허브(BaekjoonHub)

Automatically integrate your BOJ submissions to GitHub

chromewebstore.google.com

 

코드가 단순히 커밋되는 것만으로도 충분히 감사한 일이지만,

이 프로그램은 문제의 난이도에 따라 폴더를 구분하고 문제에 관한 정보를 커밋 메시지에 적어준다.

 

해결한 문제들이 차곡차곡 쌓여가는 것이 보기만 해도 기분이 좋아진다.

'코딩테스트 > 알고리즘' 카테고리의 다른 글

[BOJ 1253] '좋은' 투 포인터  (2) 2024.04.01
[BOJ 11659] 구간 합 구하기  (0) 2024.03.28
Big-O 표기법 활용하기  (0) 2024.03.28