복's

[ 백준 ] 코딩 테스트 준비 (with 백준, Solved.ac) 본문

알고리즘/백준

[ 백준 ] 코딩 테스트 준비 (with 백준, Solved.ac)

나복이 2024. 12. 11. 01:30
728x90

코딩 테스트 준비를 위해서 시작 했지만 이제는 일주일에 3 문제씩 꾸준히 풀고 있는데 내가 지금까지 가장 많이 푼 사이트는 백준이다.

이 글을 쓰는 시점에 404 문제를 풀었다. (404 Not Found...)

 

내가 운영하는 알고리즘 스터디에서 가장 많은 문제가 제출되는 곳 또한 백준이다.

이제는 사용한지 시간도 조금 지나서 항상 이용하는 기능만 사용하고 있지만 알고보면 친절하고 편안한 알고리즘 공부하기 좋은 공간이다.

[ Github - README ]


[ 📌 계정 정보 ]

[ 계정 정보 ]

우측 상단의 계정을 클릭 하면 들어올 수 있는 페이지이다.

많이 중요하지는 않지만 지금까지의 행보를 다시 되짚어 볼 수 있기에 나는 가끔 들어와서 나의 상황을 확인한다.


[ 📌 설정 ]

설정 부분이 나는 중요하다고 생각 하는데, 그 이유는 Solved.ac 랑 연동하게 되면 백준 사이트의 문제들을 난이도와 분류에 맞춰서 문제를 풀이할 수 있다.

 

설명하지 않는 설정은 다 한 번씩 들어가면 누구든지 기능에 대해서 이해하고 설정할 수 있기에 필요할 때 살펴보면 좋을 것 같다.

 

먼저 백준 사이트에서 계정 연동을 한다.

[ 백준 - Solved.ac 연동 ]

 

연동이 끝나면 보기 탭에 들어가서 티어와 알고리즘 분류를 볼 수 있는 옵션들을 선택할 수 있다.

  • 티어: 브론즈, 실버, 골드 같은 난이도 분류를 말한다.
  • 알고리즘 분류: 그래프 탐색, 정렬 같은 문제 풀이에 필요한 알고리즘을 말한다.

 

[ 설정 - 보기 ]

 

백준 사이트 자체에서도 이용자들을 위한 자체 가이드가 존재 한다.

[ 단계별 & 알고리즘별 문제 풀기 ]

 

하지만 Solved.ac 사이트에서도 여러가지 지표와 가이드를 제시 해주기 때문에 알고리즘과 티어 뿐만 아니여도 연동할 가치는 충분히 높다.


[ 📌 백준 - 문제 제출 ]

나는 처음 백준 사이트에서 알고리즘 문제를 풀 때 정말 아무것도 몰랐기 때문에 문제 제출 자체가 너무 힘들었다.

3 년전...

 

컴파일 에러가 난 코드를 살펴보면

System.out.print("Hello World");

 

단순하게 이렇게만 제출 했었다. ㅎㅎ

백준에서 문제를 제출 할 때에는 클래스 이름은 Main 으로 변경하고, 패키지 경로는 제외 해주면 된다. (import 는 해줘야함)

public class Main{
    public static void main(String[] args){
        System.out.print("Hello World!");
    }
}

[ 📌 Solved.ac ]

정말 깔끔하고 보기 좋은 지표들이 있어서 백준 만큼 자주 들어가는 사이트이다.

백준에서 제공하는 알고리즘 문제의 단점에도 불구하고 내가 백준에서 문제를 많이 푸는 이유와도 직결된다.

[ Solved.ac - profile(1) ]

 

먼저 프로필을 확인 해보면 내 티어는 내가 푼 문제들 중에서 가장 어려운 난이도 100 문제를 기준으로 정해진다.

물론 부수적으로 얼마나 많은 문제 + 내가 속한 class 의 보너스 점수 같은 요소들도 존재한다.

[ Solved.ac - profile(2) ]

 

백준 사이트에서도 제공 하지만 나는 깔끔한 이 곳을 더 선호한다...

[ Solved.ac - profile(3) ]

 

누구나 보면 알겠지만 풀이한 문제의 티어 분포도 이다.

[ Solved.ac - profile(4) ]

 

이런 지표들은 나에게 정말 도움이 많이 되었는데, 내가 잘 풀지 않는 알고리즘들 문제들을 한 곳에서 편하게 확인할 수 있다.

실제로도 내가 편하니까 자주 푸는 유형의 문제들이 있었는데, 이 분포도를 보고 부족한 알고리즘을 채우기 위해서 잘 접하지 않았던 문제 위주로 요즘은 공부하는 중이다.

[ Solved.ac - profile(5) ]

 

이렇게 성장 곡선도 확인할 수 있으니 내가 어느 기점으로 성장이 크게 되었는지 알 수 있고, 동기부여도 가능하다.


solved.ac 사이트 에서도 백준과는 별개로 초심자용 알고리즘 입문 문제라던지 class 라는 일종의 티어와 비슷한 개념으로 티어의 점수를 부수적으로 올릴 수 있는 문제 분류도 있다.

[ Solved.ac - 랜덤 마라톤 ]

 

최근에는 이렇게 일주일마다 갱신되는 랜덤 문제들도 제공되고 있는데 이러한 재미들이 알고리즘 풀이에 동기를 불어 넣어 주는 것 같다.


[ 📌 단점 ]

IDE 없이 문제를 풀이하기에 어렵다.

프로그래머스나 LeetCode 같은 다른 사이트를 이용해보면 백준과는 다른 방식으로 문제를 제출 하는데, 다른 사이트는 내가 짠 코드를 실행해서 돌려보고 수정하고 답안을 제출할 수 있는데 백준은 실행 결과가 Pass / Fail 인지만 알려준다.

 

코딩 테스트를 직접 치뤄보기 전 까지는 백준에서 문제를 많이 풀었었는데, 코딩 테스트 해보니까 실전에서는 다른 사이트가 준비할 때 훨씬 유리한 것 같다.

 

그래서 내 개인적인 생각에는 처음 자료구조와 알고리즘을 접할 때에는 백준에서 연습하고, 코딩 테스트를 위해 실전처럼 문제를 풀고 싶다면 프로그래머스나 LeetCode 가 좋지 않을까 생각한다.

728x90

'알고리즘 > 백준' 카테고리의 다른 글

[ 백준 - 1074 ] Z  (2) 2024.11.02
[ 백준 - 2458 ] 키 순서  (2) 2024.07.22
[ 백준 - 2023 ] 신기한 소수  (1) 2024.01.29
[ 백준 - 2193 ] 이친수  (1) 2024.01.28
[ 백준 - 14606 ] 피자(Small)  (2) 2024.01.28