백준이 처음이라면?

sliver gun·2024년 3월 16일

알고리즘

목록 보기
1/30

들어가며

우선 이 글은 백준이라는 사이트를 사용해보고 개인적으로 "이 사이트들을 처음 이용해보는 사람들은 이런 것들은 알았으면 좋겠다"라는 생각으로 적게 된 글입니다.

백준이란?

백준 링크 : https://www.acmicpc.net/

2010년에 개설된 알고리즘 트레이닝 사이트이다.
수 많은 문제와 간간히 올라오는 알고리즘 대회들, 랭킹 기능을 지원해 우리나라에서 알아주는 사이트라고 할 수 있다.

들어가면 뭐부터 해야할까?

일단 백준에 들어왔는데 뭐부터 해야 해?

내가 맨 처음 백준을 접했을 때는 어디서부터 뭘 해야할 지 무슨 문제부터 풀어야 할지 막막했었다.
일단 회원가입을 마치고 홈페이지를 보면 상단 메뉴에 문제 항목이 있다.

여기서 모든 문제를 번호 순으로 볼 수도 있고 단계별로 풀어보기에서 순차적으로 알고리즘을 학습할 수도 있다.

여기서 전체 문제에 들어가서 1000번부터 풀겠다고 하면 안 된다.

이 문제 번호들은 난이도와는 전혀 관계없이 새겨진 번호들이다.
만약 푼다면 1005번부터 크나큰 벽을 마주할 수 있을 것이다.

그래서 추천하는 것은 단계별로 풀어보기이다.

단계별로 풀어보기


여기서는 단계별로 입출력, 조건, 반복, 출력, 수학과 같은 기초 문제부터 정렬, 자료구조, 탐색, 그리디, DP, 그래프 등등 여러가지 알고리즘에 관련된 문제들을 모아놓았다.
백준에서 차근차근 문제를 풀고 싶다면 여기서부터 시작하는 것을 추천한다.

문제 풀어보기


문제를 풀려고 하면 다음과 같이 문제, 입력, 출력과 예제를 볼 수 있다.
여기서 문제, 입력, 출력을 보고 코드를 짜고 예제 입력들을 하나씩 복사해가면서 자신의 프로그램에 복붙해가면서 테스트해보면 된다.

하지만 백준 대부분의 문제는 예제 입출력만 된다고 해서 맞는 것이 아니다.
만약 예제는 다 맞는데 틀렸다면 자신이 체크 못 한 빈틈이 있는지 확인해 볼 필요가 있다.

틀렸는데 이유를 모르겠어요

맞는데 왜 틀려?

흔히 백준이나 다른 곳에서 알고리즘 문제를 풀다보면 한 번씩은 통칭 '맞왜틀'을 시전할 때가 있다.
하지만 백준 특성상 해당 문제의 채점으로 쓰이는 테스트 케이스는 숨겨져 있어 어느 케이스에서 내 코드가 틀렸는지 확인할 방법이 없다.
(대회 문제를 그대로 가져온 것이라면 그 대회 사이트에서 테스트 케이스를 찾아볼 수는 있다)

해당 문제의 질문 게시판에 가면 먼저 풀어본 여러 사람들의 오답을 볼 수 있다.
질의응답들을 보고 참고해서 자신이 미처 생각하지 못했던 테스트케이스나 예외 사항들을 찾아보면 그나마 도움이 될 것이다.

설정 팁

우측 상단에 설정에 들어가면 이런 메뉴들을 볼 수 있다.

학교/회사 정보

여기서 학교나 회사 정보를 등록한다면 랭킹에서 자신의 학교/회사 내의 백준 순위를 구경할 수 있게 된다.
푼 문제 수를 비교하는 랭킹이라 알고리즘 실력과는 크게 관련이 있진 않지만 보는 재미는 쏠쏠하니 해두면 좋다.

solved.ac

백준과 연동해서 다양한 서비스를 제공하는 사이트이다.
여기서는 솔브드 자체적으로 매겨놓은 난이도가 있으며 랭킹, 푼 문제 분석, 친구 기능, 프로필, 클래스 등등 여러가지 기능이 있어 알고리즘 문제를 풀 때 알록달록한 동기부여를 받을 수 있다.

보기

  • solved.ac 티어, solved.ac 티어 이름
    - 백준 문제들의 대략적인 난이도를 한눈에 볼 수 있는 옵션
  • 알고리즘 분류
    - 해당 문제가 어떤 알고리즘으로 분류되어 있는지 보는 옵션
    • 문제를 풀 때 어떤 알고리즘을 쓸지 생각해보면서 공부하고 싶다! 하면 '보지 않기'를 추천
  • 런타임 에러 이유
    - 문제가 틀렸을 때 대략적인 에러종류를 알 수 있게 해준다

언어

여기서는 자신이 메인으로 쓰는 언어를 설정해둘 수 있다.
간단하게 언어를 드래그해서 맨 위로 올려두면 기본 언어로 설정된다.
이렇게 하면 문제를 풀 때마다 제출할 때 자신의 언어로 바꿔야하는 번거로움을 없앨 수 있다.

마치며

두서없이 적은 감이 있지만 요점만 정리하자면 아래와 같다.

  • 단계별로 풀어보기로 차근차근 풀어보자
  • 백준의 문제들은 예시 입출력이 잘 된다고 맞는게 아니다
  • 설정 > 보기 에서 solved.ac 티어를 보기로 설정하면 문제마다 대략적인 난이도를 볼 수 있다.
  • 설정 > 언어 에서 자신의 메인 언어를 드래그해서 맨 위로 올려두자!

알고리즘을 공부하는 데에 있어 백준이 무조건 좋다라는 것은 아니지만 입문하고 익혀가는데에는 충분히 좋은 플랫폼이니 이 게시글의 팁을 통해 조금이나마 백준을 시작하는데에 도움이 되었으면 한다.

1개의 댓글

comment-user-thumbnail
2024년 3월 17일

백준 또 푸는 맛이 있지요 ㅋㅋ

답글 달기