본문 바로가기

Beakjoon

Beakjoon Online Judge에 대해 araboza

사이트 소개


www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

백준, BOJ 등으로 불리는 이 사이트는 알고리즘 문제가 정말 많은 문제집 사이트이다.

 

문제가 정말 많다보니 수학, 그래프 문제부터 다이나믹 프로그래밍까지 다양한 종류의 문제가 존재하는데, 가끔 함정같은 문제들도 존재한다.

 

나무위키에도 나와있다시피 문제번호는 문제의 난이도를 뜻하는 게 아니라서 초심자가 문제번호 순서대로 풀겠다는 당찬 다짐으로 시작하면 10문제도 풀지 못하고 큰 벽에 부딪히고 만다.

 

대신, "단계별로 풀어보기"나 여러가지 "문제집"이라는 컨텐츠가 존재하기 때문에 문제 번호를 신경쓰지 않고 본인의 실력에 맞는 난이도의 문제들을 골라서 풀 수 있다.

 

문제집 말고도 대회, 게시판, 그룹, 블로그 같은 유저들이 이용할 수 있는 다양한 서비스가 존재하는데, 이것 때문에 좀 더 많은 유저들이 이용하는 것 같다.

 

백준에는 Solved.ac라는 한 대학생이 개발한 서비스가 존재하는데, 로그인을 한 후 본인의 설정 페이지에서 이것저것 건드리다보면 문제들의 난이도가 브론즈V부터 루비까지 표시되는 것을 볼 수 있고, 재미로 본인의 티어도 측정할 수 있다. 단언컨대, 이 서비스를 만든 사람은 롤을 즐겨하고 있음이 분명하다.

 

그 외에도 백준의 장점은, 깔끔한 UI와 함께 다양한 언어 지원, 문제의 잘못된 점이나 부족한 부분을 유저들이 건의해서 문제가 주기적으로 갱신된다는 점 등이 있다.

 

문제 풀이


프로그래머스에서는 solution이라는 함수에서 입력은 매개변수로 주고, 출력은 return값으로 요구하지만,

백준은 모든 문제가 main에서 입출력을 모두 처리한다.

 

예를 들어, 백준의 1000번 문제 'A+B'를 풀어보자면, 입력값 두 개를 더해 출력하는 것이므로

 

a, b = map(int, input().split())
print(a+b)

python

#include <stdio.h>
int main(void)
{
	int a, b;
	scanf("%d %d", &a, &b);
	printf("%d",a+b);
	return 0;
}

C

이런식으로 함수를 작성해 제출하면 된다는 것이다.

 

TIP


TIP이라고 할 건 아니지만 그래도 언급하자면, 대부분의 유저들은 절대 머릿속에 코드를 그려서 제출란에 작성해서 제출하지 않는다.

그들은 IDE에서 코드를 작성한 후 실행해서 잘 작동하는지 미리 체크해보고 원하는 대로 됐다면 그 코드를 복사해서 백준에 제출한다. 물론 실제 코딩테스트를 응시할 때에는 IDE 사용이 제한될 수 있어 코딩테스트를 준비하는 사람들은 IDE에 길들여지는 것에서 벗어나고자 "손코딩"을 연습하기도 한다.

 

IDE가 뭐가 뭔지 모르겠는 사람들은 아래 사이트로 이동해서 한번 읽어보면 좋을 것이다.

holygod.tistory.com/25

 

[C, C++] 무료 IDE 추천

IDE IDE는 직역하자면 통합 개발 환경(Integrated Development Environment, IDE)이다. 적당히 풀어서 말하면 코드를 작성하면 디버깅과 컴파일까지 해주는 프로그램이다. IDE에는 유료 IDE가 있고 무료 IDE가..

holygod.tistory.com