about ¶
'술취한 바퀴벌레' 문제라고도 한다. 다음과 같은 격자에 술취한 바퀴벌레가 있다고 해 보자
바퀴벌레는 임의의 한 점에서 시작하여서 임의의 방향으로 움직이게 된다. 이미 지나갔던 자리에 다시 갈 수 있으며 프로그램은 바퀴벌레가 각 위치에 몇번 갔는지 기억하여야 한다. 프로그램은 바퀴벌레가 모든 지점에 적어도 한번 이상 도달하였을 경우 끝난다. 바퀴벌레는 가로, 세로, 대각선으로 한칸 씩만 움직일수 있으며, 바퀴벌레가 움직이는 방향을 랜덤하게 만드는 것은 각자가 생각해 보도록 한다.
. | . | . | . |
. | . | . | . |
. | . | . | . |
. | . | . | . |
. | . | . | . |
. | . | . | . |
. | . | . | . |
바퀴벌레는 임의의 한 점에서 시작하여서 임의의 방향으로 움직이게 된다. 이미 지나갔던 자리에 다시 갈 수 있으며 프로그램은 바퀴벌레가 각 위치에 몇번 갔는지 기억하여야 한다. 프로그램은 바퀴벌레가 모든 지점에 적어도 한번 이상 도달하였을 경우 끝난다. 바퀴벌레는 가로, 세로, 대각선으로 한칸 씩만 움직일수 있으며, 바퀴벌레가 움직이는 방향을 랜덤하게 만드는 것은 각자가 생각해 보도록 한다.
specfication ¶
- 입력 : 격자의 가로, 세로 크기, 바퀴벌레의 초기 위치
- 출력 : 각 칸에 바퀴벌레가 멈추었던 횟수, 바퀴벌레가 움직인 횟수.
심화문제 ¶
- 격자의 가로, 세로의 크기를 입력받을때. 엄청나게 큰 크기를 입력하면 어떻게 할 것인가? 배열의 동적 할당을 이용해서 2차원배열을 어떻게 사용할까? (c/c++은 자바와 달리 2차원배열을 동적할당 할 수 없다. 따라서 각자가 pseudo (혹은 imitation) dynamic 2D array 를 디자인하여야 한다)
- 할수 있다. 자바와 비슷한 모습으로 --상민
- 할수 있다. 자바와 비슷한 모습으로 --상민
문제 소스들 ¶
- 아래와 같은 예제 식으로 소스를 만든 페이지에 넣어 주세요.
도전자 | 사용언어 | Source |
신성재 | C | RandomWalk/성재 |
장은지 | C | RandomWalk/은지 |
임영동 | C | RandomWalk/영동 |
조현민 | C | RandomWalk/현민 |
박종찬 | C | RandomWalk/종찬 |
이대근 | C | RandomWalk/대근 |
유상욱 | C | RandomWalk/유상욱 |
신진영 | C++ | RandomWalk/신진영 |
임인택 | C | RandomWalk/임인택 |
강인수 | C++ | RandomWalk/ExtremeSlayer |
재니 | C | RandomWalk/재니 |
동기 | C | RandomWalk/동기 |
2003년도 | ||
장창재 | C++ | RandomWalk/창재 |
손동일 | C++ | RandomWalk/손동일 |
황재선 | C++ | RandomWalk/황재선 |
문원명 | C++ | RandomWalk/문원명 |
이진훈 | C++ | RandomWalk/이진훈 |
임민수 | C++ | RandomWalk/임민수 |
김아영 | C++ | RandomWalk/김아영 |
변준원 | C++ | RandomWalk/변준원 |
05년도 | ||
조동영 | C++ | Randomwalk/조동영 |
강희경 | C++ | 바퀴벌레에게생명을 |