pC.NET

Welcome to oscc.kr



 미로찾기 [우수법]
2020-05-12 10:46:08
Hit : 93, Vote : 18

작성자 : 피시키드
- File #1 : mazesrc.zip(4.3 KB), Download : 0
- File #2 : mazeexe.zip(142.6 KB), Download : 0

txt 파일로부터 미로 데이터를 입력받아 길을 찾는다.

txt 파일은 실행파일과 같은 경로에 위치해야 한다.

 

미로DB는 "0"과 " "을 이용하여 작성하면 되고, 최대 크기는 100x80이다.

 

알고리즘은 "오른쪽 손을 벽에 대고 가면 미로를 빠져나올 수 있다"를 기초로 작성되었다.

즉, 갈림길에서 오른쪽을 최우선 선택한다.

 

 

a. 

아래와 같이 진로의 방향에 번호를 부여한다.

← : 1, ↑ : 2, → : 3, ↓ : 4

 

b.

만약 1번(←)으로 진로를 진행하고 있었다면,

다음 칸을 옮기기 위해 2(↑),1(←),4(↓),3(→) 순으로 진로를 탐색한다.

 

만약 2번으로 진로를 진행하고 있었다면,

다음 칸을 옮기기 위해 3,2,1,4 순으로 진로를 탐색한다.

  

만약 3번으로 진로를 진행하고 있었다면,

다음 칸을 옮기기 위해 3,2,1,4 순으로 진로를 탐색한다.

 

만약 4번으로 진로를 진행하고 있었다면,

다음 칸을 옮기기 위해 1,4,3,2 순으로 진로를 탐색한다.

 

: 진로 탐색은 4->3->2->1 로 이어지는 순환 구조를 띄고 있다.

 

 

c.

아래와 같이 현재 방향성에 따라 진로를 탐색하는 함수를 호출한다.

 

방향성 1 -> 2번 호출

방향성 2 -> 3번 호출

방향성 3 -> 4번 호출

방향성 4 -> 1번 호출

 

 

d.

진로를 탐색하는 함수는 아래와 같이 서로를 호출하도록 한다.

 

1번 (←)

왼쪽이 통로라면 한칸 이동

왼쪽이 벽이라면 4번 호출

 

2번 (↑)

위쪽이 통로라면 한칸 이동

위쪽이 벽이라면 1번 호출

 

3번  (→)

오른쪽이 통로라면 한칸 이동

오른쪽이 벽이라면 2번 호출

 

4번(↓)

아래쪽이 통로라면 한칸 이동

아래쪽이 벽이라면 3번 호출

 


  피시키드
아하하하하-_-;;;
 3980
 57

잠깐!
글은 인터넷에서 자신을 나타내는 유일한 모습입니다.
한줄의 댓글이나 답글로도 피시키드님은 무척 기뻐할 것입니다.
댓글쓰기     작성자   패스워드


111
  qoh99se windows10에서 하는방법. 
 피시키드
7 2020/08/02
110
비밀글입니다  테크노트 cgi 기반 자료실 뚫기. 
 피시키드
3 2020/08/02
109
비밀글입니다  차냥이  
 sick
1 2020/07/24
108
비밀글입니다  패스워드 사전파일 
 피시키드
1 2020/06/23
107
  마인크래프트 최적화 
 피시키드
70 2020/06/10
106
비밀글입니다  작업중인 내용 
 피시키드
2 2020/05/27
105
  멀티 부팅 USB 만들기 (ISO이미지 기반) 
 피시키드
63 2020/05/27
104
  포토샵 CS3 강제종료 현상시. 
 피시키드
75 2020/05/23
103
  이스케이핑, printf(), scanf() 
 피시키드
94 2020/05/12
102
  변수명, 주소, 값, 포인터 요약 
 피시키드
90 2020/05/12
  미로찾기 [우수법]  
 피시키드
93 2020/05/12
100
  구조체 
 피시키드
96 2020/05/12
99
  문자열 좌우회전 이동  
 피시키드
97 2020/05/12
98
  10진수 2진수로 변환하여 출력하기  
 피시키드
94 2020/05/12
97
  최대공약수 구하기(유클리드 호제법)  
 피시키드
96 2020/05/12
96
  교집합과 합집합 구하기  
 피시키드
97 2020/05/12
95
  파스칼의 삼각형  
 피시키드
101 2020/05/12
94
  홀수 마방진  
 피시키드
103 2020/05/12
93
  숫자 달팽이 돌리기  
 피시키드
98 2020/05/12
92
  변수형의 제약을 넘어서 2의 n승 출력하기  
 피시키드
95 2020/05/12
91
  소수점 자리수 제한 넘어서 나눗셈하기  
 피시키드
98 2020/05/12
90
비밀글입니다  컴터 다운되기전 메모메모 
 피시키드
1 2020/05/05
89
  리눅스 패키지 관련 
 피시키드
172 2020/04/19
88
비밀글입니다  한진택배 배송사 추적 (상세) 
 피시키드
1 2020/04/19
87
  [Linux/Shell] 특정 단어가 포함된 파일을 찾아 삭제하기 
 피시키드
195 2020/04/02
86
  엑박 컨트롤러 개조 
 피시키드
195 2020/03/27
85
  editplus 빈줄 삭제 
 피시키드
327 2019/12/12
84
  ssh자동 로그인 설정   1
 피시키드
406 2019/11/08
83
비밀글입니다  영화 
 피시키드
4 2019/10/28
82
비밀글입니다  ipsw system 
 피시키드
1 2019/10/15

1 [2][3][4]



Copyright (C) 1997-2020 All Rights Reserved.