코딩 테스트를 위한 알고리즘 소소한 팁

Lupin·2023년 7월 31일
0

글을 쓰기에 앞서, 다음을 미리 말해야 할 것 같다.
나는 알고리즘 고수가 아니다. 매우 평범한 취준생이다.
2023-07-31 기준 백준-280문제, 프로그래머스-106문제를 해결한 뉴비이다.
다만, 내가 그동안 봐왔던 소소한 팁들을 개발자 취준생 여러분들께 공유하고자 한다.

어찌됐든 시작!

대부분의 기업에서 서류전형 이후, 코딩테스트 전형을 진행하고 있다.
공기업에서도 코딩테스트를 보는 것으로 알고 있다.
필자의 학부 4학년 취준 시절에는 공기업은 오직 NCS 였는데...
아무튼 개발 또는 IT 직무라면 알고리즘+SQL이 기본이 되어버렸다.

1. 플랫폼


  • 여러 사이트가 있겠지만, 나는 백준, 프로그래머스로 충분하다고 생각한다.
    • 요즘 대부분 온라인에서 진행되는데, 프로그래머스랑 유사한 환경인 경우가 정말 많았다.
  • 문제 수준은 백준 티어로 플레티넘4, 프로그래머스Lv3 정도까지 풀면 충분하다고 생각한다.
    • 백준 티어는 로그인 후 설정에서 solved.ac라는 옵션을 활성화 해주면 된다.
    • 본인 경험으로는 정말 어렵게 출제되어야 플레티넘 4정도이고, 대부분 골드 수준이었던 거 같다.
  • 기타 플랫폼 : SWEA, 정올, 더블릿

2. 무슨 문제를 풀어야할까?


  • 코딩테스트를 준비해야 되는 건 알겠는데, 뭐부터 풀어봐야할까?
  • 강력추천! 국밥 문제집
    • 바킹독님의 문제집
      • 이 분은 유튜브 강의도 있어요..! (감동..)
      • 바킹독님 말씀으로는 코테가 당장인 경우에는 0x11 그리디까지라도 풀고 가라고 하시더라구요.
    • 토니님의 문제집
      • 이 분꺼 아직 안 풀어봄...
    • 언급한 문제집은 내 개인적인 견해가 아니라, 알고리즘 고수분들 또한 공감하는 좋은 문제집이다.

3. 사사로운 꿀팁


  • bits/stdc++.h

    • 코딩테스트에 필요한 대부분의 헤더파일을 가지고 있다.
    • BOJ, 프로그래머스는 이 헤더파일이 내장되어 있으니, 그냥 include 하면 된다.
    • windows에서는 사용하는 컴파일러 include 폴더에 헤더파일을 넣으면 되는데, 매우 간단하니 검색하고 적용해보자
    • 이거 진심 편하다.
    #include <bits/stdc++.h>
    using namespace std;
    
    // 여러개의 vector, algorithm 등등 선언할 필요가 없음.
  • solved.ac 프로필

    • 백준에 로그인하면, 설정 옆에 자신의 닉네임이 있다.
    • 그걸 클릭한 후, 자신 아이디 옆에 있는 티어를 클릭하면 프로필로 이동하게 된다.
      like this
    • 어떤 유형이 부족한지 파악 가능하다. 나는 그래프를 사랑하는 남자이다.
    • 스트릭이라는 제도가 있다.
      • 하루에 문제를 1개 이상 풀이하게 되면 갱신이 된다.
      • 현재 52일째 연속 문제 풀이중이다!
  • 백준허브

    • 백준, 프로그래머스, SWEA에서 문제를 풀면 지정된 github repo로 자동 push된다.
    • 문제 설명, 링크, 예제, 해결한 코드, 사용한 메모리, 소요 시간 포함이다.
    • 자동으로 push 해주기 때문에 면접 등에서 꾸준히 알고리즘을 푼다고 어필하기 좋지 않을까
  • 알고리즘 단톡방

    • 언제나 친절히 응해주시는 알고리즘 고수분들
    • 진짜 큰 도움이 되었다. 뭔가 같이 하는 느낌이라 힘도 나고..
  • solved.ac discord

    • 디스코드 채널이 있는데, 초대장이 7일마다 갱신되서 초대 링크는 직접 찾아 보시면 될듯하다.

4. 만약 내가 알고리즘을 처음 풀어본다면?


  • C, C++ 기준으로 설명해보겠다.
  • 일단은 플랫폼에 익숙해지자.
    • BOJ
      • main() 함수까지 전부 코딩해야 한다.
      • 입력이 주어지면, 출력값을 만들면 된다.
        • 입력과 출력에는 엔터나 공백이 몇개가 들어가도 상관없다.
      • 처음 BOJ 할 때 입력 창에 다음과 같이 했었는데..ㅋㅋㅋㅋ
        • cout << "out : " << answer;
        • 이게 맞다. cout << answer;
    • 프로그래머스
      • 알고리즘 로직과 해당 결과값을 리턴하는 함수를 작성하면 된다.
      • 보통 입력은 함수의 매개변수로 주어지므로, 입력은 신경쓰지 않아도 된다.
    • 어찌됐든, 대충 20문제 정도 풀면 익숙해질 것이다.
      • 처음엔 여기에서 단계 5번까지 풀어보자
  • 위에 언급한 바킹독님의 유튜브를 보자
  • 그리고 문제집을 죽어라 풀어보자(바킹독님+토니님)
    • 이것만 해도 3개월 뚝딱;
  • 문제를 해결하면 다른 사람이 공개한 코드를 볼 수 있다.
    • 문제의 탭에서 채점 현황에 들어가면, 아이디를 검색할 수 있다.
    • 검색 추천 유저(본인은 항상 문제 풀면 아래 고수분들 검색해본다.)
      • koosaga : 백준 랭킹 1등
      • BaaaaaaaaaaarkingDog : 킹갓 문제집 제작하신 분
      • YunGoon : 단톡방에서 알게된 분인데, 많은 걸 알려주셨음!

5. 나의 목표

  • solved.ac 플레티넘 달성
  • 10월까지 500문제 달성(현재 281 문제)
  • 목표 달성 후 인증샷 남기러 오겠다.

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기