본문 바로가기

HOW/BaekJoon

[BaekJoon] 직접 문제를 풀면서 배울 수 있는 알고리즘 사이트

코딩을 취미로 하든 밥벌이로 하든 사전에 갖추면 좋은 능력이 몇 가지 있습니다. 프로그래밍 능력이야 당연히 중요하고, 그 외에도 체력 관리를 잘 하는 능력이나 구글링(?)을 잘 하는 능력도 중요합니다. 하지만 그 중에서 가장 중요한 것은 알고리즘을 이해하는 것입니다. 사람마다 생각에 차이가 있을 수 있겠으나 알고리즘을 잘 이해하고 있느냐 이해하지 못하고 있느냐는 단순 프로그래밍 업무에 차가 있을 뿐만 아니라 결과물의 속도 등에도 차이를 보일 것입니다.

 

그래서 많은 코딩 학원이나 영재반에서 코딩 능력을 교육할 때는 프로그래밍 언어도 가르치지만 알고리즘 해결 능력을 가르치기도 합니다. 하지만 그곳에 속하지 못하는 학생들도 존재할 것입니다. 그래서 알고리즘을 배울 수 있는 몇가지 사이트가 존재합니다. 그중 문제 수가 가장 많은 백준이라는 사이트를 소개해 드릴려고 합니다.

 

백준 메인 화면

백준에 접속해 보시면 이러한 형태의 메인 화면을 보실 수 있습니다. 간단한 회원가입을 진행하고 나시면 문제, 문제집, 대회 등의 메뉴를 이용하실 수 있습니다. 여러 기능이 있지만 이번 글에서는 문제를 푸는 기능만 소개해 드리도록 하겠습니다.


백준 단계별 문제 풀기

문제 풀기에도 일반모드나 단계모드 등 여러가지 모드가 존재하는데요. 저는 단계모드를 추천합니다. 약간 도장깨기? 느낌으로 진행하실 수 있는 부분으로 이 단계에서 기초적인 문제를 풀어보고 나서 다른 문제에 접하시는 것이 좋을거라 생각이 듭니다. 원하시는 문제를 선택하시면 아래와 같은 화면이 표시가 됩니다.

 

문제 정보 화면

이 화면에서는 문제에 대한 간단한 정보를 확인하실 수 있습니다. 문제 내용과 입출력 조건, 예시 등이 표시가 되어 여러분들이 문제를 좀 더 쉽게 풀 수 있도록 도와줍니다. 또한 시간 제한이나 메모리 제한 등을 표시해 좀 더 어려운 문제를 풀 때 도움이 되는 정보를 알 수 있거나 제출자, 정답자 등을 확인하여 얼마나 많은 사람들이 맞추었는가를 확인하실 수 있습니다.

 

백준 제출 화면

이 화면은 앞에서 본 문제를 푸는 화면입니다. 언어는 자바나 C, 파이썬 같은 대중적인 언어가 존재하며 아희나 Brainfuck와 같은 난해한 언어도 존재합니다. 본인의 취향에 맞추어서 해결하시면 됩니다.

 

백준 채점 화면

이곳은 본인이 제출한 소스의 채점 결과와 메모리, 시간 등을 확인할 수 있는 화면입니다. 정답일 경우 "맞았습니다!!"라는 글자가 표시되며 틀릴 경우 "틀렸습니다."라는 글자가 표시됩니다. 이 외에도 런타임 에러나 컴파일 에러 등을 표시하기에 본인이 어디에서 잘못하였는지 알아볼 수 있습니다.


이번 글에서는 백준의 기초적인 기능인 문제 풀기에 대해 알아봤습니다. 이 외에도 대회 정보를 알아보거나 대회에 나왔던 기출 문제들을 풀어보는 문제집 기능 등 NYPC, 정보올림피아드 등 관련 대회를 준비하고 있는 학생이라면 네이버처럼 단골로 방문해야하는 사이트라는 생각이 듭니다. 백준에서 열심히 연습하셔서 꼭 좋은 결과 얻으시길 바랍니다. 감사합니다.