이번에 정보올림피아드에서 비버챌린지 문제를 다룬다고 해서 저도 생소해서 검색을 해 보니 처음에는 너무 시시하다(?) 라는 정도의 생각을 가지고 이건 아무나 풀 수 있겠다 라는 생각을 가지고 있었는데...
여러가지 문제를 풀다 보니 그 속에 숨어 있는 컴퓨터 과학자가 되기 위한 원리를 잘 숨겨 놓았더라구요.
그래서 요즘 관심있게 보고 있는 문제이고...
이러한 문제를 다양하게 풀어 봄으로써 학생들이 쉽고 다양한 생각으로 컴퓨터 과학에 접근 할 수 있을것이라는 생각이 드네요.
다음은 2014년 비버챌린지 문제 중 Right rectangles 문제입니다.
문제출처 : http://www.bebras.uk/answer-booklets.html
로봇이 직사각형을 그리도록 프로그래밍 되어 있습니다.
로봇은 다음과 같은 명령어를 실행할 수 있습니다.
Orange : 오렌지 색 선을 길이가 1인 만큼 그린다.
Black : 검정색 선을 길이가 1인 만큼 그린다.
Turn : 시계 방향으로 90도 회전한다.
이 간단한 명령어 외에도 로봇은 명령어를 결합하여 복잡한 명령어를 실행 할 수 있습니다.
A와 B의 지시인 경우(하나의 명령 또는 조합의 명령)인 경우 로봇은 다음을 수행합니다.
A, B : 먼저 A를 실행한 다음 B를 실행합니다.
n×(B) : (B)를 n번 실행
로봇을 이용하여 다음 패턴을 그리려고 합니다.
다음 명령어 중에서 어떤 명령어는 위의 도면을 그릴 수 없습니다. 어느 것이 틀린 명령입니까?
1. 4×(2×(Orange, Turn), Orange, 3×(Black), Orange, Turn)
2. 4×(2×(Orange, Turn), 3×(Black), 2×(Orange, Turn))
3. 4×(3×Black, 3×(Orange, Turn), Orange)
4. 4×(Black, 3×(Orange, Turn), Orange, 2×(Black))정답) 2. 4×(2×(Orange, Turn), 3×(Black), 2×(Orange, Turn))
문제 풀이)
1,3,4 번은 시작점을 다르게 하여 하나씩 순서대로 따라 가다 보면 위의 그림을 그릴 수 있는 것을 확인 할 수 있습니다.
개념)
이러한 문제는 어떤 단순한 규칙을 찾아 내어 그것을 반복함으로써 완성된 프로그램을 만드는 규칙을 찾아 내는 문제입니다.
모든 프로그래밍 언어는 이러한 실생활에서 반복적인 규칙을 찾아 내고 그것을 분해 하여 컴퓨터가 알아 들을 수 있도록 규칙을 재 생성 하는 것으로 부터 시작 됩니다.
비버 챌린지 문제는 이러한 사고력을 키우기에 매우 적합한 문제입니다.
저희 원에서도 학생들과 같이 공부하다 보면 이러한 분해부터 어려워 하는 친구들이 있는데...
비버 챌린지 문제를 정보올림피아드 때문에 접해 보았는데.
이러한 문제 유형이 많이 노출 된다면 정말 훌륭한 컴퓨터 과학자가 될것이라는 확신이 들어 가네요.
오늘도 학업에 전념하면서도 틈틈히 컴퓨터 과학에 대해 관심을 가지면서 이 글을 읽고 있는 학생들을 응원합니다.
'강의자료 > 정보영재' 카테고리의 다른 글
정보올림피아드(KOI) 대비 팁 (7) | 2019.03.26 |
---|---|
분할 정복과 동적 계획법을 이용한 기초 프로그래밍 (6) | 2019.03.21 |
비버챌린지 2014 문제중 Ceremony 문제를 풀어 보겠습니다. (8) | 2019.03.16 |
2014년 비버챌린지 문제중 Traffic in the city 문제를 살펴 봅니다. (5) | 2019.03.15 |
패턴이나 공식 찾는 문제 알고리즘 풀이 (6) | 2019.02.06 |