저번 편 세줄요약

 

1. 작년에 엄청 설레서 정올 치러감.

2. 그런데 시험 치는데 몬가 좀 이상했음.

3. 그리고 학교로 돌아와서 채점을 하는데...

엌ㅋㅋㅋㅋ 개꿀잼 올림피아드자너~

 

시험을 끝나고 대략 한 3일정도? 뒤에 답지가 나왔다.

내 기억상으로는 그 답지가 나왔다는 사실을 안 때가 딱 청소시간이었던 것 같다.

아니었나? ㅎㅎ;;

 

아무튼 친구들한테 채점을 해 보라고 막 말한 뒤에 채점을 하려도 답지를 연 순간

경악을 금치 못했는데...

 

 

 

그 당시 봤던 정답표;;

이게 말이 되는 정답표인지 모르겠다.

그냥 대충 보더라도 알겠지만;;

정답 없음이 3개고

정답이 두개인것도 하나 있네? ㅎㅎㅎ....

 

사실 정답표가 나오기 전에도 어느 정도 시험이 개판이었는지 알았기 때문에 그렇게까지 놀랍지는 않았으나

이렇게까지 심각할 줄은 몰랐다.

채점 당시 마냥 웃기기만 하더라.

내가 어떤 문제를 맞았는지 틀렸는지 볼 겨를도 그 당시는 없었다.

그냥 "아... 그렇구나? ㅋㅋㅋㅋㅋㅋㅋ 정답이 없으면 뭐지? 맞은거겠지? ㅋㅋㅋㅋㅋㅋ"

라는 생각만 들더라.

 

 

그러고 나서 나중에 기숙사로 돌아가서 내가 틀린 문제들을 보기 시작했는데...

일단 6번 문제가 나는 뭔 문제였는지 채점 당시엔 기억 안났는데

기숙사 돌아가서 보니깐 시험때 다 풀고 나서 답이 없길래 당황했던 그 문제더라.

그렇다.

내가 잘못 풀었던 게 아니라, 답이 진짜로 없었던 거다.

마냥 웃기더라 ㅋㅋㅋㅋ;; 초반엔 그거 한문제만 붙들고 있었는데...

근데 이건 시작에 불과했다.

 

 

12번.

4팀이 한 조를 구성하여 한 팀이 같은 조 내의 다른 모든 팀과 한번 씩만 대결하는 리그 방식으로 축구 경기를 하여 상위 2 팀을 선발하려고 한다. 한 경기에서 이길 경우 승점 3점, 무승부일 경우 승점 1점, 질 경우에는 승점이 0점인 리그경기가 다 끝났을 때, 3위 팀이 가질 수 있는 최대의 승점은 얼마인가? 단 승점이 같을 경우에는 골 득실 등을 따져 순위를 가리며, 각 팀의 골득실차는 모두 다르다고 가정한다.

① 3  ② 4  ③ 5  ④ 6  ⑤ 7

 

한번 풀어보는 것도 나쁘지 않을 것 같다. 그렇게 어려운 문제도 아니니...

 

 

이 문제를 풀 때, 난 당연히 4번이라고 생각하고 쉽게 넘어갔다.

승승패 / 승승패 / 승승패 / 패패패

이러면 총 승패수 각각 6회씩이니까 3등 팀도 6점을 얻을 수 있지 않은가?

애초에 이런 일들은 실제 스포츠 세상에도 흔히 일어나는 일이다.

 

근데 위에 사진을 보면 알겠지만 답이 3번이라네?

기숙사 침대에 누워서 그걸 보고 나서 어이가 털리더라.

보통 이렇게 답이 틀리면 "아.. 그렇구나.. 할텐데"

워낙에 문제가 많던 시험이어서 그런지 "뭐래는거냐 얘는?" 하는 느낌이었다.

그리고;

https://www.fifa.com/tournaments/archive/mensolympic/sydney2000/matches/index.html

ㅇㅇ.. 답은 3번이 맞았던 것이다.

주최측에서는 단순 정답 오기라는데

좀 삐딱하게 보면 출제진조차도 문제의 답을 모르고 문제를 낸 것이고,

아무리 잘 봐줘도 국가 공인 올림피아드 시험을 보는데 답지에 정답 오기를 내는 실수를 범한 것이다.

 

이떄쯤부터 이 시험은 완전히 망했다는 것이 느껴졌다.

그냥 답이 없다.

그대로 그냥 답지를 꺼버리고, 그냥 인터넷에서 무슨 얘기들이 오가나 궁금해서 검색이나 해봤다.

 

그 중에서 내 기억 상에 가장 웃겼던 것들을 좀 보자면...

 

초등부 8번.

0에서 6까지의 자연수를 한 번씩만 사용하여 만들 수 있는 세 자리의 자연수는 모두 몇 가지인가? 

① 180  ② 190  ③ 200  ④ 210  ⑤ 220

일단, 초등학교에서 (사실 고등학교까지 모두... 현대수학 배우기 전 까지는 모두 다..) 자연수는 1 이상의 정수를 의미한다.

그러니까, 초등학생이건 중학생이건 고등학생이건 모두 0은 자연수가 아닌 걸로 배우는데

0에서 6까지의 자연수는 대체 뭘까?

음... 고민을 해 보도록 하자...

 

 

초등부 14번.

다음 프로그램의 출력 결과는 무엇인가? 

int x = 9, y = 11;
if (x < 10)
  if (y > 10)
    printf("A");
  else
    printf("B");
printf("C");

① A  ② AB  ③ BC  ④ AC  ⑤ ABC

 

 

초등부 24번.

x=9, y=11일 때, 다음 프로그램의 출력 결과는 무엇인가? 

if (x < 10)
if (y > 10)
  printf("A,");
else
  printf("B,");
printf("C");

① A,  ② A,B,  ③ B,C  ④ A,C  ⑤ C

 

 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

저거 둘다 초등부 동일 년도 문제다.

아무래도 들여쓰기랑 ,(comma)가 들어가면 아예 다른 문제가 되는듯하다.

아니 대체 어떻게 동일한 시험지에 동일한 문제를 출제할 수 있는지 모르겠다.

아니 진짜로 어떻게... 말이 안나온다 ㅋㅋㅋㅋ

 

 

고등부 49번.

다음 프로그램의 출력 결과는 무엇인가?

#define INT_MAX 2147483647
#define abs(x) (x<0) ? x*-1 : x
int f(char *D)
{
  int n = 14;
  int B[14][14];
  bool A[14][14];
  int i, j, k, m;
  for (i = 0; i<n; i++) {
    A[i][i] = true;
    B[i][i] = 0;
  }
  for (m = 1; m <= n; m++) {
    for (i = 0; i<n - m + 1; i++) {
      j = m + i - 1;
      if (m == 1) A[i][j] = A[i][j];
      if (m == 2) A[i][j] = D[i] == D[j]);
      else A[i][j] = (D[i] == D[j]) && A[i + 1][j - 1]);
      if (A[i][j] == true) B[i][j] = 0;
    else {
      B[i][j] = INT_MAX;
      for (k = i; k <= j - 1; k++)
        B[i][j] = B[i][j] < (B[i][k] + B[k + 1][j] + 1)? B[i][j] : (B[i][k] + B[k + 1][j] + 1);
      }
    }
  }
  return B[0][n - 1];
}

int main()
{
    char D[] = "ababbbabbababa";
    printf("%d", abs(f(D)));
    return 0;
}

이것도 정말 답이 없었던 것이 뭐냐면,

코드 자체가 틀린 코드였다.

 

우선, 코드 중간에 괄호가 하나가 없어서 컴파일조차 되지 않는다.

그렇다. 주최측에서 코딩문제를 컴파일도 안돌려보고 문제를 낸 것이다.

뭐? 컴파일 해본 다음에 실수로 괄호 하나를 빠뜨린거 아니냐고?

아니, 실행을 안 시켜본게 확실하다.

 

왜냐하면 어떻게 괄호를 고쳐서 코드를 컴파일 하더라도,

답이 INT_MAX 인 2147483647로 나오기 때문이다.

이정도면 코드 실행 한번도 안 해 본게 느껴지지 않는가?

(그냥 저걸 답으로 쓰면 안되냐고? OMR카드에 2147483647를 쓸수 있겠는가???)

아니 대체가 어떻게 된게 코드 문제에 코드 실행도 안시켜보고 문제를 내는지 이해가 안될 따름이다.

 

 

 

 

 

아무튼..

수없이 많은 문제 오류들과 정답 기입 오류(;;) 들 끝에, 결국 정보 올림피아드 주최측은 사과문을 올리기에 이른다.

 

Apple sentence;

 

그리고 올라온 이의 신청 검토 의견서가 나오게 된다.

그리고 하는 변명들은 가히 전설적이라 할 만 한데,

그 중 몇가지만 써보자면....

 

 

<초등부 8번 문항>

‘0이 자연수에 속하는가에 대한 이의 제기가 많았으며, 수학교육과 교수와 현장 교사 등의 의견을 참조하고 정보과학계의 입장을 반영하였습니다.

 

현대 수학에서는 일반적으로 자연수에 0이 포함되는 것에 대해 두 가지의 다른 정의가 함께 사용되고 있습니다. 일반적으로 정수론에서는 0을 제외한 양의 정수를 사용하며, 집합론과 컴퓨터과학(전산학)의 이산수학에서는 0을 포함한 음이 아닌 정수를 자연수로 정의하여 사용하고 있습니다. 이러한 혼란 때문에 통상적으로 대부분의 책과 논문 등에서는 자연수에 대한 정의를 먼저 제시하고 내용을 전개해 나가고 있습니다. 본 문항의 지문에서도 ‘0에서 6까지의 자연수라고 먼저 제시하였고 또한  0을 자연수에서 제외하고 문제를 푼 경우에 해당하는 답안이 보기에 존재하지 않으므로 혼란의 여지는 없습니다.

 

초등부 전체 응시자의 73.8%‘0을 자연수라고 가정하고 문제를 풀어 보기를 선택하였으며, 나머지 학생은 전혀 관계없는 오답을 선택하였습니다. 다만, 0이 자연수가 아니라고 가정하여 이 문제에 대한 답변을 아예 하지 않을 학생이 있을 가능성도 검토하였으나 전국대회 진출 여부에는 영향을 주지 않는다는 사실을 확인하였습니다.  

 

 

?

???

?????????????

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

초등부 문제에서 현대 수학에서 자연수의 정의와, 집합론과 컴퓨터과학의 이상수학의 자연수에 대한 정의를 알고 있어야 하나?

또, '0에서 6까지의 자연수' 라고 기입되어 있으면 그게 자연수의 정의를 제시한 것인가?

뭐지? 미친건가??

그럼 대부분의 책과 논문 등에서 "0 이상의 자연수에 대하여" 라는 한 문장만 존재하면 자연수의 정의를 다 한것인가?

정말 주최측의 설명이 이해가 잘 가고 납득이 될 따름이다.

 

 

44번.

한 컴퓨터회사의 구성원은 사장 1명과 직원들로 구성되어 있고, 회사의 각 직원은 최대 3명까지의 부하직원을 둘 수 있다. {X, Y, Null}의 표현은 두 명의 부하직원 X와 Y가 있으며, 없는 경우는 Null로 나타낸다. 또한 부하직원이 하나도 없으면 {Null, Null, Null}로 나타낸다. 만일 그 컴퓨터회사 모든 직원의 조직도에서 Null의 총 개수가 10인 경우, 최소 직원 수는 몇 명인가? 단, 사장의 직속상관(바로위의 상관)은 없고, 직원들의 직속상관은 1명이다.

① 2  ② 3  ③ 4  ④ 5  ⑤ 6

 

화두는 "사장도 직원에 속하는가?" 였는데,

그에 따른 주최측의 설명은 다음과 같다:

 

<중등부 8번 문항 / 고등부 44번 문항>

본 문항에서 회사의 구성원을 사장 1명과 직원들로 분리하여 설명하였기 때문에 사장은 직원에 포함되지 않고 {X, Y, Z}형식은 직원들에게만 해당됩니다. 따라서 직원들의 조직도에서 Null 개수가 10개를 만족하는 최소 직원의 수를 도출할 수 있습니다.

 

???????????

????????????

회사의 구성원을 사장 1명과 직원들로 분리하였기에 사장은 직원이 아니라고?

그럼 문제에서 "각 직원은 최대 3명까지의 부하직원을 둘 수 있다." 는 뭐지?

사장은 직원이 아니니깐 부하직원을 두면 안되는데? 아니 애초에 사장 얘기는 왜한걸까?

 

아니 그보다도, 사장 1명과 직원들로 분리하여 설명하면 사장은 직원이 아니라는건가?

동물들과 닭 한마리 이러면 닭은 동물이 아닌건가? 난 잘 모르겠는데;

아니 애초에 저게 사장 1명과 직원들로 분리한거 맞나? 그렇다기엔 너무 문장력이 떨어지는 느낌인데;;

 

 

 

+나는 어차피 모르고 풀어서 할말 없지만, 아무튼 이해가 안되던 문제가 11번이었다.

 

11번.

n 개의 수들을 가지고 완전 이진트리를 만들 경우 이 트리의 높이는 얼마인가?

 

① log2n 의 버림 값 ② (log2n)3 의 버림 값 ③ (log2n + 1) 의 버림 값 ④ (log2n - 1) 의 버림 값 ⑤ (log2n)2 의 버림 값

(log뒤의 2는 로그의 밑이다.)

 

이 문제에서, 완전 이진트리의 높이를 정의하지 않고 그냥 넘어가고 있다.

노드 한 개만 있는 상태는 높이가 몇인걸까?

이에 대한 해답은,

 

<고등부 11번 문제>

완전 이진트리는 루티드 트리(rooted tree)입니다. 루티드 트리에서 레벨(level)이라는 개념은 기본 정의가 없고, 깊이(depth)와 높이(height)는 정의가 있습니다. 깊이는 노드에 대해서만 정의되고, 높이는 노드, 트리 모두에 대해서 정의되는데 주어진 트리의 높이는 그 트리의 루트노드의 높이로 정의됩니다. 노드의 높이는 그 노드에서 연결된 가장 멀리 떨어진 단말노드(leaf node)까지 존재하는 가장 긴 경로에 존재하는 간선들의 수로 정의됩니다. 따라서 본 문항에서 노드가 1개일 경우 높이는 0입니다. 위의 정의에 따라 정답을 도출할 수 있습니다.

(참고자료) Introduction to Algorithms, MIT press, 3rd edition, page 1177

 

 

그렇단다.

아니 그런데 애초에, "공교육 기반 문제 출제"를 약속해 두고,

이의신청 검토 의견서에 참고자료랍시고 MIT에서 발행한 책을 두는건 이해가 잘 가지 않는다.

뭐하자는 거지?

 

 

+ 49번 단답식 문항의 답변.

<49번 단답식 문항>은 지문에 제시된 C코드에서 ‘(’ 부호 하나가 빠지게 된 편집오류에 해당합니다. 그 부호가 없더라도 정답을 유추할 수 있었겠지만, 코드오류가 명확하다고 판단하여 정답없음으로 처리하였습니다.

 

'(' 부호 하나가 빠진게 문제가 아니고 코드 자체의 오류가 문젠데 꼭 '(' 부호 하나 없어서 정답없음 처리한 듯이 써놨다.

놀라울 따름이다.

 

 

 

그리고, 그렇게 나는 그렇게 인생 첫 정올을 망치게 되었다.

나는 대략 커트라인에서 5점정도 떨어진 점수를 받고 전국 진출도 떨어지게 되었다.

하지만 본선 진출은 사실 시험 치기 전부터 알고 있었기에 별로 기분이 나쁘진 않았는데,

인생 첫 올림피아드를 나갔는데 이따구로 시험이 출제된 것 자체가 많이 억울하고 씁쓸했다.

 

 

추가하자면, 사실 전국대회 본선도 문제가 좀 많았다고 한다.

채점이 심하면 1시간까지도 미뤄졌다는 얘기가 있는데,

나는 전국대회에 나가보지 못했기 때문에 따로 할 말이 없다.

그냥 나무위키 가서 보도록 하자 ㅎㅎ...

 

....이것으로 2018년 정보올림피아드 시험을 봤던 후기를 끝내도록 하겠다.

뭔가 시험 후기가 아니라 문제까기에만 급급했던 것 같은데,

사실 시험 보면서, 그리고 시험이 끝나고 한 생각들이 온통 저런것들 뿐이어서....

 

나중에 시간이 된다면 어제 치뤘던 2019 정올 관련 후기도 올리도록 하겠다.

? 작년에 저렇게 개판을 쳤는데, 올해는 어떻게 잘 했냐고?

뭐, 그럭저럭 잘 했다.

1교시 까지는 ㅋ

 

아무튼 이에 관련된 후기는 나중에 올리도록 하겠다.

ㅃㅃ

'잡담' 카테고리의 다른 글

크리스마스  (0) 2019.12.26
정보올림피아드 보고 온 기념) 2018 정보올림피아드 썰 - 1편  (1) 2019.05.04

+ Recent posts