인터랙티브 문제 개발기

BOJ에 인터랙티브를 추가해달라는 요청은 꽤 오래 전부터 있었습니다.

위 링크에 적힌대로 BOJ의 메인 개발자 백준님은 인터랙티브 문제가 없던 시절에 프로그래밍 대회에 참가했기 때문에, 인터랙티브 문제에 대한 이해가 떨어졌었습니다. 그래서 오랜 기간 BOJ에 추가되지 못했었습니다.

인터랙티브 문제가 무엇인지는 수비니움님이 올린 인터랙티브 안 풀어본 사람이 올리는 인터랙티브 글을 읽어보면 좋을 것 같습니다.

인터랙티브 문제는 두 가지 방식이 있습니다.

  1. 함수 구현
  2. stdin/stdout을 통한 구현

인터랙티브 문제를 간단하게 설명하면 채점 프로그램과 소통을 하면서 문제를 푸는 것입니다. 이때 소통을 함수를 통해서 하면 방식 1, stdin/stdout을 통해서 하면 방식 2입니다.

방식 1의 경우에는 함수를 구현하는 것이기 때문에, 언어별로 채점 프로그램을 다 만들어 놓아야 합니다. 방식 2의 경우에는 입/출력을 통하는 것이기 때문에, 언어와 상관없이 채점을 할 수 있습니다.

놀랍게도 BOJ는 “함수 구현” 문제를 가지고 있었습니다.

생각해보니 인터랙티브와 함수 구현은 채점 방식의 차이가 전혀 없었습니다. BOJ에 인터랙티브 태그를 보여주는 기능을 추가하고, BOJ의 채점 프로그램에 인터랙티브 태그를 함수 구현 태그로 수정하는 기능을 추가해 약 15분 만에 구현을 마칠 수 있었습니다.

온라인 저지가 방식 1과 2 중 하나만 선택해야 할 필요는 없기 때문에, 방식 2도 곧 추가하려고 합니다.

댓글 남기기

About Baekjoon

스타트링크 블로그에서 지루한 글을 담당하고 있습니다!