스탠포드식 쉬운 프로그래밍 / 코딩 첫걸음 (12) - 카렐 중앙 수색

스탠포드식 쉬운 프로그래밍 / 코딩 첫걸음 (12) - 카렐 중앙 수색 본문

스탠포드식 쉬운 프로그래밍 / 코딩 첫걸음 (12) - 카렐 중앙 수색

KRONNA 2016.07.15 10:00


이번 주는 과제로 시작합니다. 이번 과제가 우리가 카렐과 마지막으로 함께 할 프로젝트이니 최선을 다 해주세요!



카렐 중앙 수색 과제는 설명하기 매우 쉬운 과제입니다. 카렐이 아래에서 첫번째 가로줄의 가운데를 찾아서 그 위에 비퍼를 놓으면 됩니다. 다른 규칙들은 아래와 같습니다:

  • 카렐은 참고로 왼쪽 아래 코너에서 오른쪽을 보면서 시작합니다. 

  • 중간 과정에서 비퍼를 다른 장소에 몇개를 놓아도 상관이 없지만, 마지막 상황에선 가운데에만 비퍼가 있도록 다른 비퍼들을 주워야 합니다. 

  • 중앙 수색 과제에서 카렐의 세계에는 세계 가장자리의 외벽 말고는 벽이 없으며, 세로 높이는 언제나 가로 넓이와 같거나 더 깁니다. 

  • 가로로 홀수 만큼의 칸이 있는 세계에서는 카렐이 가운데 칸에 비퍼를 놓아야하지만, 짝수 만큼의 칸이 있는 세계에서는 카렐이 가운데 둘 중 어느 칸에 놓아도 상관이 없습니다 (하지만 하나의 칸에만 놓아야합니다). 

  • 마지막으로, 카렐이 작업을 마친 후 어느 방향을 보고 있는가는 중요하지 않습니다. 



이 문제가 어려운 이유는 카렐이 숫자를 세고 외울 수 없기 때문입니다. (참고로 자바 변수를 사용할 줄 아시는 분들은 for 루프를 위한 변수 외에는 변수를 사용하지 말아주세요. 물론 for 루프를 사용하지 않고도 문제를 해결할 수 있습니다). 이 과제는 해결방법이 정말 다양한 과제입니다. 최소한 10가지는 다른 알고리즘으로 풀 수 있으니 창의적으로 한번 도전해보세요! 


Stanford CS106A 수업에 대한 모든 권리는 스탠포드 대학교가 가지고 있습니다. "스탠포드식 쉬운 프로그래밍 / 코딩 첫걸음"은 스탠포드 대학교의 CS106A 수업을 남녀노소 누구나 쉽게 배울 수 있도록 각색하고 한국어로 번역한 내용이며, 본글에 대한 모든 권리도 스탠포드 대학교가 가지고 있습니다. CS106A 수업에 사용되는 교재인 Karel the Robot Learns Java와 The Art & Science of Java를 작성해주신 Eric Roberts 교수님과 CS106A 수업을 가르치고 계시며 해외로 수업 내용 반출을 허락해주신 Mehran Sahami 교수님 그리고 Marty Stepp 교수님께 감사드립니다.


스탠포드 대학교에서 컴퓨터 과학을 전공중인 박준원이라고 합니다. 질문은 junwonpk@stanford.edu로 보내주시면 24시간 내로 답변 드리겠습니다. 설명을 따라했는데도 똑같이 작동하지 않거나 설명에 이해하기 어려운 부분이 있으면 주저하지 말고 질문 보내주세요! ^^

0 Comments
댓글쓰기 폼