'2023 국민대학교 & 중앙대학교 프로그래밍 경진대회' 문제 출제 후기
본문 바로가기

IT/전자기기/PS (알고리즘 문제풀이)

'2023 국민대학교 & 중앙대학교 프로그래밍 경진대회' 문제 출제 후기

728x90
반응형

2023년 9월 16일, 국민대학교 알고리즘 동아리 'KPSC'와 중앙대학교 알고리즘 학회 'ChAOS'가 공동으로 주최한 '2023 국민대학교 & 중앙대학교 프로그래밍 경진대회'에 출제 및 운영진으로 참가했었습니다.

제가 출제한 문제는 C번, '최소 성적' 문제였는데요

 

완성된 문제를 보면서 어느 정도 못 푸는 사람이 있을 거라 생각은 했지만, 예상을 뛰어넘는 정답률이 나와서 너무 놀랐습니다

그래서 후기를 적을 겸 문제에 관한 얘기를 좀 해보려고 합니다.

 

 


 

우선 제가 출제한 문제에 대한 설명을 먼저 해야 할 것 같은데요

문제 내용은 위 사진과 같은데, 지문의 제일 첫 문장으로 대충 요약을 하자면

"이번 학기에 받아야 하는 최소 평균 평점 기준과 수강한 과목 중 한 과목을 제외한 모든 과목의 성적이 주어졌을 때, 최소 평균 평점 기준을 충족하기 위해 받아야 하는 나머지 한 과목의 최소 성적을 출력" 하는 문제입니다

 

대충 보면 쉬워 보이는 문제인데, 사실은 그렇지 않습니다

"단, 실수 자료형을 사용할 경우 부동 소수점 오차가 발생할 수 있으므로 주의하라."라는 문구가 난이도를 조금이라도 낮추기 위해 넣은 문장인데요

이걸 잘 보지 않고 대충 제출했다가 틀리신 분들이 많으신데,

 

반응형

 

사실은 저도 몇 번 틀렸습니다(???)

 

틀리는 이유는 부동 소수점 오차 때문이었는데요

이 문제 때문에 출제 기간 내내 오차를 방지할 방법을 생각해내야 했습니다.

 

처음엔 아예 평점을 정수로 바꿔보거나, 평점을 반올림하는 등, 여러 방법을 시도해 봤는데요

하다가 보니 틀리는 데이터에서 공통점을 찾게 되었습니다.

그것은 바로 특정 실수를 정수로 형변환을 하면 오차로 인해 원래 나와야 할 정수와 다른 정수로 바뀌게 된다는 점인데요

 

 

그 점을 깨닫고 나서 정해를 정수 연산으로 풀리도록 만들었습니다.

지문의 버림 연산, 기준 초과가 있는 이유는 이 때문입니다...

 

아무튼, 여러 시행착오 끝에 문제를 완성을 했고요

그렇게 출제 기간이 끝나고, 검수 기간이 되며 여러 검수진 분들이 잘 푸시는 걸 보고 좀 안심을 하긴 했습니다

그런데...

 

 

 

사람들이 정수 연산을 떠올리지 못한 건지, 무려 A번, B번보다 제출 수가 많으면서 정답율이 18.760%인 문제가 되었습니다(...)

이걸 보면서 참 안타깝기도 하고, 제 문제를 풀려고 시도하신 분들께 죄송하기도 하네요

 

 

728x90

일주일 동안 고민해서 적은 후기는 여기까지고요

 

 

 

 

29753번: 최소 성적

이번 학기에 받아야 하는 최소 평균 평점 기준과 수강한 과목 중 한 과목을 제외한 모든 과목의 성적이 주어졌을 때, 최소 평균 평점 기준을 충족하기 위해 받아야 하는 나머지 한 과목의 최소

www.acmicpc.net

제 문제는 위 링크를 누르시면 보실 수 있고요

 

 

 

2023 국민대학교 & 중앙대학교 프로그래밍 경진대회 후기

사건의 발단 제가 운영하고 있는 오픈채팅방 에서 중앙대-국민대 연합, 통칭 중국연합을 만들어 달라는 이야기가 태초에 있었습니다. 타이밍은 아마 개강직후였을거에요. 군휴학하신 모 국민대

blog.koderpark.dev

혹시라도 연합 대회가 열리게 된 계기가 궁금하시다면

위 링크를 누르셔서 국민대학교 KPSC의 동아리장님이 작성하신 글을 보시면 좋을 것 같습니다

이분도 저처럼 출제 중에 문제 생겨서 큰일 날 뻔했어요

728x90
반응형