jh05013   4년 전

최근 12개의 대회 중 데이터가 틀렸거나 풀이가 틀린 대회가 무려 6개입니다. 최근에 이렇게 된 게 아니라, 재작년-작년부터 쭉 이래 왔습니다. 이게 정상적인 현상이라고 생각하지 않습니다. 오타나 중의적인 문장 같은 건 다 잡아내기도 어렵고 상대적으로 피해도 작지만 (있어도 된다는 소리는 당연히 아니죠), 데이터와 풀이 오류는 매우 치명적입니다. 

출제에 익숙한 사람들이 모여도 자잘한 오류가 나올 수 있는 마당에, 그런 사람들마저 없으면 대회를 열지 말아야 한다고 생각합니다.

그래서 작년부터 쭉 요청드렸고, 이제는 본격적으로 대회의 질 얘기를 수면 위로 올려 보려고 합니다. 제 기억에 이 얘기가 BOJ 사이트에서 논의된 적은 없는 것 같습니다. 검증된 검수진을 필수 조건으로 넣어 주셨으면 좋겠습니다. 그 외에 대회의 질을 높이는 방법에 대한 여러분의 생각을 들어보고 싶습니다.

pichulia   4년 전

게시판지기가 띠로 있는 뫄뫄솨 사이트마냥 BOJ전용 대회운영 검수진을 따로 두는건 너무 비현실적이니...(각자의 직장이 있고 학교가 있고 삶이 있으니)


@startlink는 직원을 풀어라!(...?!)

jh05013   4년 전

좋아요만 12개고 댓글이 하나밖에 없는 걸 보니 이것도 그대로 묻히지 않을까 염려됩니다...

딱 정해진 검수진을 두는 것보다는 그냥 BOJ 사이트 등에서 검수진을 모집하는 것으로도 충분할 것 같습니다. 물론 신뢰 가능한 검수진이라는 전제 하에서요.

kipa00   4년 전

사람들의 지식 및 인식 개선이 가장 중요한 문제인 것 같습니다.

대회를 열다 보면 풀이를 많이 생각해 보고 틀린 풀이를 막는 데이터를 만드는 것이 쉽지 않다는 것은 PS를 어느 정도만 해 봐도 알 수 있는 주지의 사실입니다. 그러나 최근(2년 정도) 열리는 대회들을 보면 "일단 PS가 유행이니 대회는 열어야겠는데, 그냥 풀이 짜 보고 랜덤 돌려서 데이터 만들면 되지 않을까?"라는 느낌으로 열리는 대회나 만들어지는 문제가 너무 많습니다. 대회를 양산해야 하다 보니 비슷하거나 심지어는 똑같은 문제가 반복되기도 합니다.

가장 중요한 문제부터 말해 보겠습니다: 풀이가 틀리는 경우입니다. 2018년 SNUPC에 (풀이가 틀린) 가장 어려운 문제가 대회 일주일 전까지 버젓이 존재하던 사건이 있었습니다.[1] 이 문제가 대체되어 나온 문제가 미생물 키우기입니다. 대회 두 달 전부터 피타고라스 쌍과 함께 풀이가 올라와 있었고, 당시 이 문제를 검수할 분이 저를 비롯하여 PS를 몇 년씩 하신 @doju @kazel @cozyyg 등이었음에도 불구하고 발견되는 데에 한 달 반보다 오랜 시간이 걸렸습니다. 사람은 생각보다 비판적으로 듣는 것이 잘 안 되고, 그래서 허투루 검수하다가는 풀이가 쉽게 틀립니다.

이 현상은 "대회에 어려운 문제가 하나쯤은 있어야 할 것 같다"라고 생각하게 될수록 빠지기 쉬운데, 저는 기억이 잘 나지 않지만 못과 매듭을 이용해서 그림이 떨어지는 경우의 수를 구하는 문제가 있었습니다. 이 문제는, 제 기억이 맞다면, 대회 문제였는데 무려 모두에게 공개된 채로 2년을 버텼습니다. 나중에 많은 사람들이 협력하여 이 문제에 이상이 있음을 밝혔고 문제가 채점 준비 중으로 바뀌었습니다.

그 다음입니다: 데이터가 틀리는 경우입니다. 문제의 골자는 맞고 데이터를 바꾸는 것만으로 좋은 문제가 되는 경우입니다. 문제를 내는 많은 사람들이 polygon의 존재를 모릅니다. 문제를 만들 때 polygon이라는 서비스를 이용하면 데이터를 자동으로 만들고, 데이터가 맞는지 검증하는 코드를 반드시 짜게 되어 있어 사람이 개입할 여지가 적어집니다. 따라서 데이터가 틀릴 확률이 상당히 낮아지게 됩니다. 그러나 이런 도구를 사용하지 않고, 파이썬을 이용해서 데이터를 대충 만들거나, (대회가 하나의 언어를 쓰도록 제한되지 않은 이상) 둘 이상의 언어로 검수를 진행하지 않고 C/C++로만 풀이를 짜 보고[2] 대회에 문제를 내는 경우가 많습니다.

가장 덜 심한 오류를 얘기해 보자면, 데이터가 약한 경우가 있습니다. 사람들이 많이 할 만한 실수(off by one 등)를 반드시 잡는 데이터를 넣지 않거나, 한 가지 풀이에 대응하는 데이터만 많이 준비하는 경우입니다. 이 경우는 그나마 대회 준비 시간이 없었다거나 할 경우 위의 문제(issue)보다는 우선순위가 밀립니다. 또 디스크립션이 틀리거나 오타가 있는 경우는 충분히 일어날 수 있기 때문에, 심지어 대회 플랫폼에서는 보통 제도적으로 이를 확인할 수 있는 방법이 존재합니다.

이외에도 제가 겪은 많은 문제가 있지만, 참가자의 짜증을 유발하는 선에서 그치면 양반인 문제들만 언급해 보았습니다. 인식 개선이 중요한 문제라고 지적했으니 글을 일부러 길게 써서 이 글을 읽는 것만으로도 대회를 운영하는 것이 어떤 것인가 하는 느낌을 받으시도록 했으니, tl;dr 하실 분들은 대회 열지 말아주시기를 부탁드립니다.

개인적으로 생각해 본 해결 방안으로는 이러한 내용을 제도적으로 교육하는 무언가를 만들어서, 백준에 대회를 내실 분들이 반드시 이수하도록 했으면 좋겠습니다. 위와 같은 내용을 알고 책임감을 갖도록 교육하는 것이 가장 중요한 해결 방안이라고 생각합니다. 그렇지 않으면 매 대회 때마다 몇 분의 검수자 분들만 고생하는 구도가 만들어지고, 이는 그러한 검수진이 없으면 대회가 금방 무너지므로 궁극적인 해결책이 못 됩니다.

이에 대해 다른 분들의 생각은 어떠한지 들어보고 싶습니다.

[1] 이 문제는 제가 낸 문제가 아니므로, @cki86201 님이 원하신다면 실제 문제와 얘기를 조금 더 자세히 들어볼 수 있을 것입니다.
[2] validator를 짜지 않았다면, 공백 및 줄바꿈에 민감하게 반응하는 언어로 반드시 검수를 진행하십시오.

herdson   4년 전

문제 및 데이터 검수를 통과해야 대회를 승인할 수 있는 시스템이 있어야 한다고 생각합니다.

어쨌든 스타트링크의 허가를 통해서 대회가 열리는게 아닌가요? 그렇다면 사측에서도 이를 검증할 수 있을 만큼 검증할 책임이 일부 있다고 생각합니다. 대회가 끝난 후 문제는 BOJ에 풀리는데 결함이 있는 문제를 그대로 내보낸다는 것은 BOJ에 수록된 문제들에 대한 신뢰도가 떨어질 수 있음을 의미합니다. 따라서 대회 검수 전문 요원이 필요하다고 생각합니다.

데이터가 약한 경우는 코포의 핵 시스템을 도입하면 꽤 괜찮지 않나 싶습니다. 그러면 대회를 진행하는 도중에 데이터가 실시간으로 보강된다는 기대를 해볼 수 있지 않을까요?

solarmagic   4년 전

  1.  기존의 대회 출제에 관한 룰을 지키지 않은 대회는 거절해야합니다.

문제나 출제진 및 검수진에 관한 룰은 여기에 잘 써져 있지만 사실 이게 엄밀히 지켜지고 있는지 궁금합니다. 검수진에 관한 룰을 제외하더라도 문제 가이드를 지키지 않은 문제들도 많이 보이고, 내지 말아야 하는 문제에 속하는 유형(단순 출력, 전형적인 문제)의 문제를 낸 대회도 볼 수 있습니다.
 

검수진에 관한 사항을 보면

  • 문제 출제자 및 검수자는 모두 BOJ 유저이며, 최소 100문제 이상을 푼 기록이 있어야 합니다.
    • 위의 자격을 만족하지 못한 경우, 객관적으로 실력을 입증할 수 있는 자료가 필요합니다.
  • 개인, 단체, 동아리, 학교 대회의 경우 외부 검수자가 필요하며, 필요한 인원의 수는 최소 1인 이상입니다. 필요에 따라 스타트링크에서 최소 인원 수를 정할 수 있습니다.
    • 외부 검수자는 BOJ 슬랙 또는 게시판내에서 구할 수 있습니다.
    • 외부 검수자를 구하지 못한 경우 대회를 진행할 수 없을 수도 있습니다.
    • 외부 검수자가 필요하지 않은 대회가 있을 수도 있으며, 스타트링크에서 정합니다.
  • 대회에는 3인 이상의 검수자가 필요하며, 외부 검수자는 이 값에 포함하지 않습니다.
  • 각 문제는 출제한 사람을 제외한 최소 2명의 검수를 받아야 합니다.

그러나 대회 탭에 있는 대회에 '대회 운영진' 목록에 소속/학교를 봤을 때 외부 검수진이 없는 대회가 많이 존재하고 그 중 대다수는 출제 오류를 범했습니다

2. 대회 출제에 관한 룰도 조금 강화시켜야 한다 생각합니다.

"외부 검수자가 필요하지 않은 대회가 있을 수도 있으며, 스타트링크에서 정합니다." 라는 내용을 삭제하고 기업대회가 아닐시 최소 1인 이상의 외부 검수자를 모집을 강제하는 것이 좋다 생각합니다. 외부 검수자는 위에 써져 있듯이 BOJ슬랙 및 게시판에서 구할 수 있어 크게 무리라고 생각하지 않습니다.

또한 출제자 및 검수자에 관한 룰도 조금 강화시켜야 합니다. 

기존의 BOJ 100문제 이상 조건에서 과거의 스타트링크의 문제출제자 모집조건 또는 캠프 조교 조건 또는 알고리즘 강사 조건 으로 상승시키는게 좋다고 생각합니다.
(지금은 위 링크에 관한 사람을 스타트링크에서 모집하고 있지 않습니다. 혹시 착각하실 분들을 위해 적습니다.)


@startlink @baekjoon 님께서는 혹시 이에 관한 어떤 의견이 있는지 궁금합니다.

chogahui05   4년 전

음.. 전형적인 문제도. 잘 포장하면 어렵게 만들 수 있는 듯 싶어요..

당장 작년 한양대의 그 문제도 '전형적인 문제'였습니다. 잘 포장해서 좋은 문제가 되었고요.

https://www.acmicpc.net/problem/16473

사실 코테에서 중요한 조건이 누락되거나. 솔루션 자체가 틀린 경우.. (이건 대회도 예외가 아닙니다..)

그런 경우에는 안 좋게 봅니다. 솔루션 자체가 틀린 경우는.. 아아...


코테 보는 입장에서도 저런 경우에는 정말... 굉장히 안 좋게 봅니다..

기본적인 코테에 대해서도 <솔루션, 데이터, 문제에 대한 검증> 을 안 했다는 건데.. 큰 프로그램은 잘 만들까? 

그런 편견을 가지고 보게 되거든요...

다시 대회.. 출제 의도, 평가표, 데이터 분포, 풀이, 이런 풀이 어떻게 저격할지.

저런 풀이는 또 어떻게 저격할지. 사실 제 이상한 습관인지 모르겠지만 전 그걸 안 쓰면.. 문제가 만들어지지 않더라고요...

그렇게 해도 힘든 게 문제 출제라 생각합니다.

제가 하는 방식을 강요하는 건 좋지 않다고 생각합니다.

다만.. 출제 의도라던지. 풀이는 검수진 분들에게 논리적으로 설명할 수 있을 정도가..

그리고 대회 후에 출제한 문제에 대한 솔루션은 명확하게 설명할 수 있을 정도가 되어야 하지 않나 생각합니다.

jh05013   4년 전

최소 조건이 너무 낮은 것 같긴 합니다. 코드포스같은 경우 최소 블루는 되었으면서 여러 대회에 참여한 적이 있어야 대회를 열 수 있고, 그마저도 검수진은 보통 오렌지/레드 급의 사람들로 이루어져 있습니다. 그런 코드포스 대회에서조차 가끔씩 오류가 나오죠. 이렇게 보면 블루 이하의 출제/검수진으로 이루어진 대회에서 오류가 없으면 그건 기적일 지도 모르겠습니다.

startlink   4년 전

안녕하세요.

위의 몇가지에 대해서 답변드립니다.

먼저, @herdson님의 문제 및 데이터 검수를 통과해야 대회를 승인할 수 있는 시스템입니다.

문제 및 데이터 검수를 통과해야 대회를 할 수 있긴한데, 문제를 대회 전날 또는 당일 완성해서 보여주는 경우가 거의 90%라 검수를 할 수가 없습니다. 그리고 말씀하신대로 신뢰도가 가장 많이 고민하고 있는 부분입니다. 대회를 거절할 수가 없어서 어쩔 수 없이 검수하지 못하고 대회를 연 경우가 많습니다.

둘째로 코포의 핵 시스템은 도입할 계획이 없습니다.

@solarmagic 님이 말씀하신 대부분의 부분은 제가 최근에 추가한 규칙으로 그 규칙에 해당하는 대회는 아직까지는 없었습니다. 해당 규칙이 생긴 이후에 규칙에 의해서 대회 개최 요청을 거절한 기록이 있습니다.

또, "문제와 관련해 내지 말아야할 문제에 속하는 유형"이 출제된 이유로 몇가지가 있는데, 하나는 위의 답변처럼 대회 전날 또는 당일 문제가 완성되서 거절하지 못한 경우, 그리고 제가 문제를 보고 승낙한 경우가 있습니다.

대회 운영진에는 검수진이 없는 대회가 존재합니다. 검수자를 대회 운영진에 추가할지 말지는 운영자의 재량입니다. 앞으로 대회에는 대회 검수진 항목을 함께 넣겠습니다.

외부 검수자가 필요하지 않은 대회가 있을 수도 있다는 의미가 작성하신대로 저의 의도와는 다르게 받아들여지는 것 같아 삭제하겠습니다.

출제자의 자격 조건을 수정하겠습니다.

대회 개최와 관련해서는 새로운 글을 올리고 이 글을 상단 고정에서 내리겠습니다.

댓글을 작성하려면 로그인해야 합니다.