Hello

: )

2016년 8월 28일 일요일

채점 도움말을 읽어보자

Baekjoon Online Judge 의 경우

BOJ 는 아래 링크에서 채점 관련된 도움말 페이지를 볼 수 있다

https://www.acmicpc.net/help/judge

많은 좋은 내용들 중에서 compile option 을 확인할 수가 있는데,





요런 식으로 활용할 수 있다

개발 환경에 따른 Compile 옵션 활용하기

Microsoft Visual Studio 2015 버전(?)부터 gets() 는 지원하지 않고, gets_s() 함수를 지원하기 때문에 아래와 같이 활용할 수가 있다

예를 들어,
13163번: 닉네임에 갓 붙이기(https://www.acmicpc.net/problem/13163)는 한 줄씩 입력을 처리하면 간단하게 코드를 만술 수 있는데, Visual Studio 에서는 gets() 를 쓸 수 없기 때문에 채점 사이트의 compile option 을 확인해서 처리할 수 있다

* C 계열 compile 옵션에서 볼 수 있는 -DONLINE_JUDGE 의 의미는 소스 코드의 상단에 #define ONLINE_JUDGE 를 선언한 것과 동일한 의미

   for (int i = 0; i < N; i++) {  
 #ifndef ONLINE_JUDGE  
     gets_s(name);  // 내가 개발하는 환경에서 gets() 를 쓸 수 없는 경우(예, Windows + Visual Studio 환경)
 #else  
     gets(name);    // 채점 서버에서 Compile 되는 경우
 #endif  



UVa Online Judge 의 경우


문제 제출시 확인이 가능하고, ONLINE_JUDGE 가 사용되는 것을 볼 수 있다



ANSI C 5.3.0 - GNU C Compiler with options:   -lm -lcrypt -O2 -pipe -ansi -DONLINE_JUDGE
   C++ 5.3.0 - GNU C++ Compiler with options: -lm -lcrypt -O2 -pipe -DONLINE_JUDGE
 C++11 5.3.0 - GNU C++ Compiler with options: -lm -lcrypt -O2 -std=c++11 -pipe -DONLINE_JUDGE

댓글 2개: