티스토리 뷰


[프로그래밍 문제] 토끼잡기



네이버 지식인을 돌아다니다가 아래와 같은 재미있는 문제를 발견했습니다.

여러분도 한번 풀어보세요^^


사람과 토끼는 0 ~ 69의 가로 좌표에 위치한다
 
사람과 토끼의 초기 좌표는 무작위 값이다
 
#include <stdlib.h>
 
#include <time.h>
 ... 
srand((unsigned)time(NULL)); //초기화
 
...
 
num = rand(); // random value ( 0 - RANDMAX)
 
사람과 토끼의 위치는 화면상에 다음과 같이 표시한다
 
(사람으 H, 토끼는 R)
 
H:23,R:2 l  R                     H
 
사람은 토끼를 자비 위하여 좌우 10씩 이동이 가능하다
 
     이동은 매 턴마다 키보드로 입력한다
 
     10R은 오른쪽으로 10칸 이동할 떄, 5L은 왼쪽으로 5칸 이동할 때 입력하는 값이다
 
     움직이지 않을 때는 0R 또는 0L하면 된다
 
매 턴마다 토끼도 좌우 최대 5칸씩 무작위로 움직인다
 
(안 움직일 수도 있다)
 
양 끝 좌표값을 넘아가는 값으로 가게 될 경우 최대값 혹은 최소값의 좌표를 갖는다
 
한 턴이 끝나고 토끼가 사람과 같은 칸에 있거나 한칸옆에 있으면 토끼를 잡는다
 
토끼는 20번 안에 잡아야 하며 그렇지 못하면 실패 메시지를 보내고 끝낸다
 
-----------------------------------------------------------------------------------------
 
H:23, R: 2  l R                     H
 
어떻게 움직이시겠습니까? 10L
 
H:13, R: 4  l    R         H
 
어떻게 움직이시겠습니까? 9L
 
H:  4,R: 0  lR    H
 
어떻게 움직이시겠습니까? 8L
 
H:  0,R: 5  lH     R
 
어떻게 움직이시겠습니까? 5R
 
H:  5,R: 5 l     X
 
잡았습니다

댓글