E D R , A S I H C RSS

Random Walk2

aka ScheduledWalk
  • aka = also known as

λ°”ν€΄λ²Œλ ˆ ν•œ λ§ˆλ¦¬κ°€ 판 μœ„λΌ λŒμ•„λ‹€λ‹Œλ‹€. 이 λ°”ν€΄λ²Œλ ˆκ°€ 각 칸을 λ°©λ¬Έν•œ νšŸμˆ˜μ™€ 총 움직인 νšŸμˆ˜λΌ κ΅¬ν•˜λΌ.

이 νŽ˜μ΄μ§€μ— μžˆλŠ” ν™œλ™λ“€μ€ ν”„λ‘œκ·Έλž˜λ°κ³Ό λ””μžμΈμ— λŒ€ν•΄ 생각해 λ³Ό 수 μžˆλŠ” ꡐ윑 ν”„λ‘œκ·Έλž¨μ΄λ‹€. λͺ¨λ“  ν™œλ™μ„ λλ‚΄κΈ°κΉŒμ§€ μ‚¬λžŒμ— 따라 ν•˜λ£¨μ—μ„œ 삼사일이 걸릴 μˆ˜λ„ μžˆλ‹€. ν•˜μ§€λ§Œ μ—¬κΈ°μ„œ μ–»λŠ” 이득은 μ•žμœΌλ‘œ λͺ‡ 년도 λ„˜κ²Œ 지속될 것이닀. λ¬Έμ œλΌ ν’€ λ•ŒλŠ” ν˜Όμžμ„œ ν•˜κ±°λ‚˜, 그게 μ–΄λ ΅λ‹€λ©΄ λ‘˜μ΄μ„œ PairProgramming을 해도 μ’‹λ‹€.

see also:

μž…λ ₯


ν‘œμ€μž…λ ₯을 톡해 λ‹€μŒ λ‚΄μš©μ„ μž…λ ₯ λ°›λŠ”λ‹€.

M N
(0~(M-1)) (0~(N-1))
([0~7]*)
999

첫 μ„μ˜ M,N은 판의 ν–‰κ³Ό μ—΄λ‘œ 판의 ν¬κΈ°λΌ λ§ν•˜κ³ , λ‹€μŒ 라인의 숫자 두 κ°œλŠ” λ°”ν€΄μ˜ 초기 μœ„μΉ˜λ‘œ ν–‰κ³Ό μ—΄μ˜ μˆœμ„œλ‹€. λ‹€μŒ μ„μ—λŠ” λ°”ν€΄μ˜ 여정이 λ‚˜μ˜€λŠ”λ° 0λΆ€ν„° 7 μ‚¬μ΄μ˜ μˆ«μžκ°€ 이어진닀. 0λΆ€ν„° 7 μ‚¬μ΄μ˜ μˆ«μžλŠ” λ°©ν–₯을 의λΈν•œλ‹€. 0이 뢁μͺ½μ΄κ³ , μ‹œκ³„λ°©ν–₯으둜 1,2,3,...7이 λ°°μΉ˜λœλ‹€. λ§ˆμ§€λ§‰ μ„은 999둜 λλ‚œλ‹€.

예.

10 10
0 0
22222444445
999

10ν–‰ 10μ—΄μ˜ 판의 0ν–‰ 0μ—΄ μ§€μ μ—μ„œ 바퀴가 μΆœλ°œν•˜κ³ , 처음 λ‹€μ„ μΉΈμ„ 동μͺ½μœΌλ‘œ 움직인 λ‹€μŒ, λ‹€μ„ μΉΈμ„ 남μͺ½μœΌλ‘œ 움직이고, λ§ˆμ§€λ§‰μ— λ‚¨μ„œμͺ½μœΌλ‘œ ν•œ μΉΈ 움직인 λ‹€μŒ λλ‚œλ‹€.

μ’…λ£Œ 쑰건

  • 판 μœ„μ˜ λͺ¨λ“  μΉΈ(cell)을 ν•œλ²ˆ 이상 λ°©λ¬Έν–ˆκ±°λ‚˜
  • λ°”ν€΄λ²Œλ ˆμ˜ 여정이 λλ‚˜κ±°λ‚˜

진행


λ°”ν€΄λŠ” 여정에 따라 ν•œ λ²ˆμ— ν•œ μΉΈ μ”© μ›€μ§μ΄λ˜ 총 8 λ°©ν–₯ 쀑 ν•˜λ‚˜λ‘œ 움직일 수 μžˆλ‹€. λ§Œμ•½ 판의 끝을 λ„˜μ–΄μ„œλ©΄ λ°˜λŒ€μͺ½μœΌλ‘œ λŒμ•„ λ‚˜μ˜€κ²Œ λœλ‹€.
λ§Œμ•½ 열이 N-1일 λ•Œ 동μͺ½μœΌλ‘œ 움직이면 같은 ν–‰μ˜ 0μ—΄λ‘œ μ΄λ™ν•˜κ³ , 열이 0일 λ•Œ μ„œμͺ½μœΌλ‘œ μ΄λ™ν•˜λ©΄ 동일 ν–‰μ˜ N-1μ—΄λ‘œ λ‚˜μ˜¨λ‹€.
λ§Œμ•½ 행이 M-1일 λ•Œ 남μͺ½μœΌλ‘œ 움직이면 같은 μ—΄μ˜ 0ν–‰μœΌλ‘œ λ‚˜μ˜€κ³ , 행이 0일 λ•Œ 뢁μͺ½μœΌλ‘œ μ΄λ™ν•˜λ©΄ 동일 μ—΄μ˜ M-1ν–‰μœΌλ‘œ λ‚˜μ˜¨λ‹€.
λ”°λΌμ„œ, μœ„μΉ˜κ°€ 0ν–‰ 0열일 λ•Œ λΆμ„œμͺ½μœΌλ‘œ 움직이면 M-1ν–‰ N-1μ—΄λ‘œ λ‚˜μ˜€κ²Œ λœλ‹€.

좜λ ₯


ν‘œμ€ μΆœλ ₯을 톡해, 바퀴가 총 움직인 νšŸμˆ˜μ™€ 각 칸에 λ„λ‹¬ν•œ νšŸμˆ˜λΌ μΆœλ ₯ν•œλ‹€. 양식은 λ‹€μŒκ³Ό κ°™λ‹€.

(총 횟수)

(n0,0) (n0,1) (n0,2) ... (n0,N-1)
(n1,0) (n1,1) (n1,2) ... (n1,N-1)
...
(nM-1,0) ...             (nM-1,N-1)

첫 번 μ§Έ μ„은 바퀴가 총 움직인 횟수(처음 바퀴가 λ†“μ΄λŠ” 것은 움직인 κ²ƒμœΌλ‘œ μΉ˜μ§€ μ•ŠλŠ”λ‹€)이고 ν•œ μ„은 띈 λ‹€μŒ, 판의 각 칸에 바퀴가 λ°©λ¬Έν•œ νšŸμˆ˜λΌ ν–‰λ ¬λ‘œ 좜λ ₯ν•˜λ˜, 동일 ν–‰μ˜ 칸은 빈칸(슀페이슀)둜 κ΅¬λΆ„ν•˜κ³ , 각 행은 ν•˜λ‚˜μ˜ μ„을 μ°¨μ§€ν•œλ‹€.

예.

11

1 1 1 1 1 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

Source

ν•΄κ²°μž κ°œλ°œμ‹œκ°„ μ‚¬μš©μ–Έμ–΄Source
μ΄μƒκ·œ . C++ RandomWalk2/μƒκ·œ
μ‘°ν˜„λΌ . C++ RandomWalk2/ν˜„λΌ
인수 . C++ RandomWalk2/Insu
μ˜λ™ . C RandomWalk2/μ˜λ™
μƒκ·œ, μ°½μ„­ . C++ScheduledWalk/μ°½μ„­&μƒκ·œ
μž¬λ‹ˆ, μ˜λ™ . C++ScheduledWalk/μž¬λ‹ˆ&μ˜λ™
. . C RandomWalk2/Vector둜2μ°¨μ›λ™μ λ°°μ—΄λ§Œλ“€κΈ°
μ„μ²œ . C++ ScheduledWalk/μ„μ²œ
μ‹ μž¬λ™ . PythonRandomWalk2/μž¬λ™
μƒκ·œ, μ‹ μž¬λ™ 2μ‹œκ°„ PythonRandomWalk2/ExtremePair
μ‘°ν˜„νƒœ C++ RandomWalk2/μ‘°ν˜„νƒœ


λ‹€μŒμ€ μ΄μƒμ˜ μš”κ΅¬μ‘°κ±΄μ„ 만μ±ν•˜λŠ” ν”„λ‘œκ·Έλž¨ 개발이 μ™„λ£Œλ˜μ—ˆμ„ 경우만 λ³Έλ‹€.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.


λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° λ¬Έμ œλ‚˜, κ²½μ‹œλŒ€νšŒ λ¬Έμ œλŠ” ν•œλ²ˆ 주어진 λ¬Έμ œμ— ν•œλ²ˆ λŒ€μ‘ν•˜λ©΄ 그걸둜 λλ‚œλ‹€. ν•˜μ§€λ§Œ ν˜„μ‹€μ€ 그렇지 λͺ»ν•˜λ‹€. ν•œλ²ˆ κ°œλ°œν•œ ν”„λ‘œκ·Έλž¨μ„ μš”κ΅¬μ‚¬ν•­ μΆ”κ°€/변경에 따라 λͺ‡ 번이고 μˆ˜μ •ν•˜κ³  λ‹€μ‹œ κ°œλ°œν•΄μ•Ό ν•  λ•Œλ„ μžˆλ‹€. μš°λ¦¬κ°€ λ§ν•˜λŠ” λ¬Έμ œν’€μ΄ λŠ₯λ ₯μ—λŠ” μ΄λΈ λ§Œλ“  ν”„λ‘œκ·Έλž¨μ„ μœ μ§€λ³΄μˆ˜ν•˜λŠ” μž‘μ—…λ„ ν¬ν•¨λ˜μ–΄μ•Ό ν•œλ‹€.

κ΅μœ‘μ— μžˆμ–΄ 이런 μž‘μ—…μ΄ μ€‘μš”ν•œ 이유 쀑 ν•˜λ‚˜λŠ”, μžμ‹ μ΄ λ§Œλ“  ν”„λ‘œκ·Έλž¨μ΄ 해닡을 μ œλŒ€λ‘œ λ‚΄λŠλƒλŠ” 것을 ν™•μΈν•˜λŠ” λ°μ—λŠ” ν•œ λ¬Έμ œλΌ ν•œλ²ˆ ν‘ΈλŠ” κ²ƒμœΌλ‘œ μ±ν•˜μ§€λ§Œ, κ±°κΈ°μ„œ μ½”λ“œμ˜ λ””μžμΈ μ§ˆμ„ 확인할 μˆ˜κ°€ μ—†λ‹€λŠ” λ¬Έμ œκ°€ 있기 λ•Œλ¬Έμ΄λ‹€. ν•˜μ§€λ§Œ, μš”κ΅¬μ‚¬ν•­ 변경에 따라 μžμ‹ μ΄ κ°œλ°œν•œ ν”„λ‘œκ·Έλž¨μ„ λ‹€μ‹œ μˆ˜μ •ν•˜κ²Œ 되면, 이전에 λ§Œλ“  μ½”λ“œμ˜ μ§ˆμ— 따라 κ·Έ λ…Έλ ₯에 ν˜„κ²©ν•œ 차이가 λ‚œλ‹€. λ””μžμΈ 질이 λ†’μœΌλ©΄ μ•„μ£Ό 짧은 μ‹œκ°„ μ•ˆμ— κ°„λ‹¨ν•˜κ²Œ μš”κ΅¬μ‚¬ν•­ 변화에 λŒ€μ‘ν•  수 μžˆμ„ 것이고, 질이 λ‚μ•˜λ‹€λ©΄ μž₯기간에 걸쳐 μ—¬κΈ°μ €κΈ°λΌ λ“€μ‘€μ‹œκ³  κ³¨μΉ˜λΌ μ©ν˜€μ•Ό ν•  것이닀.

이런 κ²½ν—˜μ„ ν•˜κ²Œ 되면 "λ””μžμΈμ˜ 질"이 무엇인가 직접 μ²΄ν—˜ν•˜κ²Œ 되고, 그것에 λŒ€ν•΄ 생각해 보게 되며, μ‹€νŒ¨/κ°œμ„ μ„ 톡해 점차 λ””μžμΈ μ‹€λ ₯을 높일 수 μžˆλ‹€. λ­”κ°€ μž˜ν•˜κΈ° μœ„ν•΄μ„œλŠ”, "이런 것이 있고, λ‚œ 그것을 잘 λͺ»ν•˜λŠ”κ΅¬λ‚˜"ν•˜λŠ” "λ¬΄μ§€μ˜ 인식"이 μ„ ν–‰λ˜μ–΄μ•Ό ν•œλ‹€. (see also Wiki:FourLevelsOfCompetence )

λ‹€μŒμ€ μ½”λ“œ λ””μžμΈμ΄ 쒋지 λͺ»ν–ˆμ„ 경우 고생을 ν•  μš”κ΅¬μ‚¬ν•­ 변경듀이닀. κ·Έλƒ₯ λŒ€μΆ© μƒκ°λ‚˜λŠ” λŒ€λ‘œ μ•„λ¬΄κ²ƒμ΄λ‚˜ λ‚˜μ—΄ν•œ 게 μ•„λ‹ˆκ³ , μˆœμ„œλ‚˜ λ³€κ²½μ‚¬ν•­μ΄λ‚˜ λͺ¨λ‘ μ² μ €ν•˜κ²Œ ꡐ윑적 νš¨κ³ΌλΌ μ—Όλ‘μ— 두고 "λ””μžμΈ"λ˜μ—ˆλ‹€.

변경사항은 μˆœμ„œλŒ€λ‘œ "λˆ„μ μ "이닀. λ³€κ²½1을 λ³Ό λ•ŒλŠ” λ³€κ²½2λΌ λ³΄μ§€ μ•ŠλŠ”λ‹€. ν˜„μž¬μ˜ 변경을 λͺ¨λ‘ μ™„λ£Œν•œ 후에야 λ‹€μŒ 변경을 λ³Ό 수 μžˆλ‹€. λ”°λΌμ„œ λ³€κ²½3을 ν•˜κ³  μžˆλ‹€λ©΄, 사싀상 ν˜„μž¬μ˜ μ½”λ“œλŠ” κΈ°λ³Έ μš”κ΅¬μ‚¬ν•­+λ³€κ²½1+λ³€κ²½2λΌ μ΄λΈ μΆ©μ±ν•˜κ³  μžˆμ–΄μ•Ό ν•œλ‹€.

λ§Œμ•½ μžμ‹ μ΄ μž‘μ„±ν•œ μ½”λ“œλΌ μœ„ν‚€μ— 올리고 μ‹Άλ‹€λ©΄ RandomWalk2/μ•„λ¬΄κ°œ νŒ¨ν„΄μ˜ νŽ˜μ΄μ§€ 이름을 λ§Œλ“€κ³  거기에 μ½”λ“œλΌ λ„£μœΌλ©΄ λœλ‹€. 이 λ•Œ, 변경사항을 ν•˜λ‚˜μ”© μ™„λ£Œν•¨μ— 따라, μ½”λ“œμ˜ μ–΄λ””λΌ μ–΄λ–»κ²Œ λ°”κΏ¨λŠ”μ§€(μ˜ˆμ»¨λŒ€, μƒˆλ‘œ ν΄λž˜μŠ€λΌ ν•˜λ‚˜ λ§Œλ“€μ–΄ 뢙이고, κΈ°μ‘΄ ν΄λž˜μŠ€μ—μ„œ μ–΄λ–€ λ©”μ˜λ“œλΌ λŒμ–΄μ˜¨ 뒀에 λ‹€λ₯Έ ν΄λž˜μŠ€κ°€ μƒˆ ν΄λž˜μŠ€λΌ μƒμ†ν•˜κ²Œ ν–ˆλ‹€λ“ μ§€ λ“±) κ·Έ λ³€μ²œ κ³Όμ •κ³Ό μžμ‹ μ˜ 사고 과정을 μš”μ•½ν•΄μ„œ ν•¨κ»˜ 적어주면 μžμ‹ μ€ λ¬Όλ‘  λ‚¨μ—κ²Œλ„ λ§Žμ€ 도움이 될 것이닀. λ˜ν•œ, 변경사항을 ν•˜λ‚˜ μ™„λ£Œν•˜λŠ” 데 κ±Έλ¦° μ‹œκ°„μ„ ν•¨κ»˜ λ¦¬ν¬νŒ…ν•˜λ©΄ ν•œκ°€μ§€ 척도가 될 수 μžˆκ² λ‹€.

λ³€κ²½1

바퀴 μ»€ν”Œ

λ°”ν€΄λ²Œλ ˆμ˜ λ§ˆλ¦¬μˆ˜κ°€ λ‘λ§ˆλ¦¬λ‘œ λŠ˜μ–΄λ‚œλ‹€. 그리고 "ν„΄"(turn)의 κ°œλ…μ΄ 생긴닀. 턴은 μΌμ’…μ˜ λ‹¨μœ„μ‹œκ°„μœΌλ‘œ, ν•œλ²ˆμ˜ 턴에 두 마리의 λ°”ν€΄λ²Œλ ˆλŠ” 각각 μžμ‹ μ΄ μ˜ˆμ •ν•œ λ°©ν–₯으둜 이동을 ν•œλ‹€.

μž…λ ₯μžλ£ŒλŠ” λ‹€μŒκ³Ό 같이 λ°”λ€Œμ–΄μ•Ό ν•œλ‹€.

10 10
0 0
22222444445
3 7
121212645372
999

첫번째 λ°”ν€΄λŠ” 0ν–‰0μ—΄μ—μ„œ 22222444445의 μ—¬μ •μœΌλ‘œ μ—¬ν–‰ν•˜κ³ , λ‘λ²ˆμ§Έ λ°”ν€΄λŠ” ν–‰7μ—΄μ—μ„œ 121212645372의 여정을 λ”°λ₯Έλ‹€. (두 λ°”ν€΄μ˜ μ‹œμž‘μ μ΄ 같을 μˆ˜λ„ μžˆλ‹€)

처음 턴에 1번 λ°”ν€΄λŠ” 2λ°©ν–₯으둜 ν•œμΉΈ 움직이고, 2번 λ°”ν€΄λŠ” 1λ°©ν–₯으둜 ν•œμΉΈ 움직인닀. λ‘˜ 쀑 ν•œμͺ½ λ°”ν€΄μ˜ 여정이 λλ‚˜λ„ λ‹€λ₯Έ ν•˜λ‚˜μ˜ 바퀴 여정이 λλ‚˜μ§€ μ•ŠμœΌλ©΄ κ²Œμž„μ€ μ’…λ£Œν•˜μ§€ μ•ŠλŠ”λ‹€. ν•˜μ§€λ§Œ, 두 바퀴 쀑 μ–΄λŠ λˆ„κ΅¬μ˜ 여정도 λλ‚˜μ§€ μ•Šμ•˜λ”λΌλ„ 판 μœ„μ˜ 셀이 λͺ¨λ‘ λ°©λ¬Έλ˜μ—ˆλ‹€λ©΄(즉, 1이 λ°©λ¬Έν•œ μ…€κ³Ό 2κ°€ λ°©λ¬Έν•œ μ…€μ˜ 합집합이 전체 셀이라면) κ²Œμž„μ€ μ’…λ£Œν•œλ‹€.

좜λ ₯μ •λ³΄λŠ” 각 바퀴별 움직인 μˆ˜μ™€ 판의 μƒνƒœκ°€ λœλ‹€.
(바퀴1)
(바퀴2)

(판의 μƒνƒœ)
.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

λ³€κ²½2

N-바퀴

λ°”ν€΄λŠ” 총 N마리(N은 100 μ΄ν•˜μ˜ μžμ—°μˆ˜)κ°€ 쑴재 κ°€λŠ₯ν•˜λ‹€. 방식은 μœ„ 바퀴 μ»€ν”Œκ³Ό μœ μ‚¬ν•˜λ‹€.

10 10
0 0
22222444445
3 7
121212645372
2 5
57575757575757575757
8 8
663
999

이 경우 총 λ„λ§ˆλ¦¬μ˜ 바퀴가 판 μœ„λΌ λŒμ•„λ‹€λ‹ˆκ²Œ λœλ‹€.

좜λ ₯μ •λ³΄λŠ” λ‹€μŒκ³Ό κ°™λ‹€.
(바퀴1)
(바퀴2)
...
(바퀴N)

(판의 μƒνƒœ)
.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

λ³€κ²½3

μŠˆνΌλ°”ν€΄

바퀴에 두가지 μ’…λ₯˜κ°€ μžˆλ‹€. SuperRoach와 NormalRoachκ°€ 그것이닀. NormalRoachλŠ” ν•œλ²ˆμ— ν•œμΉΈ,SuperRoachλŠ” ν•œλ²ˆμ— 두칸을 μ“Έκ³  μ§€λ‚˜κ°„λ‹€.

μž…λ ₯μžλ£ŒλŠ” λ‹€μŒκ³Ό κ°™λ‹€.

10 10
0 0 S
22222444445
3 7 N
121212645372
2 5 N
57575757575757575757
8 8 S
663
999

첫번째 λ°”ν€΄λŠ” μŠˆνΌλ°”ν€΄λ‘œ 0ν–‰0μ—΄μ—μ„œ μ‹œμž‘ν•΄μ„œ 22222444445의 μ—¬μ •λŒ€λ‘œ μ—¬ν–‰ν•œλ‹€. λ‘λ²ˆμ§Έ λ°”ν€΄λŠ” μ •μƒλ°”ν€΄λ‘œ 3ν–‰7μ—΄μ—μ„œ 여행을 μ‹œμž‘ν•œλ‹€.

μ–΄λ–€ μŠˆνΌλ°”ν€΄κ°€ 0ν–‰0μ—΄μ—μ„œ μΆœλ°œν•˜κ³  여정이 224μ˜€λ‹€λ©΄ κ·Έ 바퀴가 μ§€λ‚˜κ°„ 판의 μƒνƒœλŠ” λ‹€μŒκ³Ό κ°™λ‹€.
1 1 1 1 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
...

좜λ ₯μ •λ³΄λŠ” 바퀴별 움직인 횟수(μŠˆνΌλ°”ν€΄μ˜ 경우 ν•œλ²ˆμ— 두칸을 움직이기에 움직인 횟수 μ—­μ‹œ λ‘λ²ˆμœΌλ‘œ μΉœλ‹€)와 판의 μƒνƒœλ‹€. μ•žμ„œμ˜ κ²½μš°μ™€ λ™μΌν•˜λ‹€.
.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

λ³€κ²½4

쉬기,μŒμ‹

μ΄λ²ˆμ—λŠ” λ‘κ°€μ§€μ˜ μš”κ΅¬μ‚¬ν•­ 변경이 μžˆλ‹€.

λ°”ν€΄λŠ” μ—¬μ •μ—μ„œ 9κ°€ λ‚˜μ˜€λ©΄ μ œμžλ¦¬μ—μ„œ ν•œ 턴을 쉴 수 μžˆλ‹€. λ”°λΌμ„œ ν•œ 턴에 μ›€μ§μ΄λŠ” λ°”ν€΄λŠ” 전체 λ°”ν€΄μ˜ 수 N보닀 κ°™κ±°λ‚˜ μž‘λ‹€.

판 μœ„μ—λŠ” μŒμ‹μ΄ λͺ‡ ꡰ데 λ–¨μ–΄μ Έ μžˆμ„ 수 μžˆλ‹€. 정상바퀴가 이 μŒμ‹μ„ 먹으면 λ‹€μŒ λ”°λΌμ˜€λŠ” 일정기간(5ν„΄) λ™μ•ˆ μΌμ‹œμ  μŠˆνΌλ°”ν€΄κ°€ λœλ‹€. νƒœμƒμ  μŠˆνΌλ°”ν€΄λ„ μŒμ‹μ„ λ¨ΉκΈ°λŠ” ν•˜μ§€λ§Œ μžμ‹ μ—κ²ŒλŠ” 아무 영ν–₯이 μ—†λ‹€. 바퀴가 μŒμ‹μ„ 먹으면 κ·Έ μ…€μ˜ μŒμ‹ κ°œμˆ˜κ°€ ν•˜λ‚˜ μ„μ–΄λ“ λ‹€. ν•œ 셀에 μ—¬λŸ¬κ°œμ˜ μŒμ‹μ΄ μžˆμ„ 수 μžˆλ‹€.

정상바퀴가 μŠˆνΌλ°”ν€΄κ°€ 된 λ™μ•ˆμ— λ‹€μ‹œ μŒμ‹μ„ 먹으면 "μž„μ‹œ μŠˆνΌλ°”ν€΄"의 기간이 ν˜„ μ‹œμ μ—μ„œ 5ν„΄λ§ŒνΌμœΌλ‘œ 재μ„μ •λœλ‹€. μ˜ˆμ»¨λŒ€, 처음 μŒμ‹μ„ λ¨Ήκ³  μŠˆνΌλ°”ν€΄κ°€ 된 μƒνƒœμ—μ„œ 2턴이 μ§€λ‚œ λ‹€μŒμ— λ‹€μ‹œ μŒμ‹μ„ 먹으면 μ•žμœΌλ‘œ 5ν„΄ λ™μ•ˆ μŠˆνΌλ°”ν€΄κ°€ λœλ‹€.

ν•œ 턴에 λ‘˜ μ΄μƒμ˜ 바퀴가 λ™μ‹œμ— μŒμ‹μ΄ μžˆλŠ” 칸에 λ„μ°©ν–ˆμ„ λ•Œ, λ°”ν€΄μ˜ μˆ˜κ°€ μŒμ‹μ˜ μˆ˜λ³΄λ‹€ λ§Žλ‹€λ©΄ 바퀴듀은 λ‹€μŒ μˆœμ„œλ‘œ μŒμ‹μ„ λ¨ΉλŠ”λ‹€.
  1. 정상바퀴
  2. μΌμ‹œμ  μŠˆνΌλ°”ν€΄
  3. νƒœμƒμ  μŠˆνΌλ°”ν€΄
  4. λ§Œμ•½ μš°μ„ μˆœμœ„κ°€ 같은 바퀴가 μŒμ‹μ„ 놓고 κ²½μŸν•œλ‹€λ©΄ 처음 μž…λ ₯ν–ˆλ˜ μˆœμ„œκ°€ 2μ°¨ μš°μ„ μˆœμœ„κ°€ λœλ‹€.

μž…λ ₯μžλ£ŒλŠ” λ‹€μŒκ³Ό κ°™λ‹€.

10 10
2 6
3 9
4 8
4 7
-1
0 0 S
22222449944945
3 7 N
999121212645372
2 5 N
57597575757597597575757
8 8 S
663999
999

판의 ν¬κΈ°λŠ” 총 10ν–‰10열이고, 2ν–‰6μ—΄, 3ν–‰9μ—΄, 4ν–‰8μ—΄, 4ν–‰7열에 μŒμ‹μ΄ λΈλ¦¬ λΉ„μΉ˜λ˜μ–΄ μžˆλ‹€(이 λ•Œ ν–‰κ³Ό 열은 μ•žμ„œμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ 각각 0λΆ€ν„° μ‹œμž‘). -1은 μŒμ‹μ •λ³΄μ˜ 끝을 의λΈν•œλ‹€.

좜λ ₯μ •λ³΄λŠ” μ•žμ„œμ™€ μœ μ‚¬ν•˜λ‹€. ν•œλ²ˆμ— 두칸을 움직이면 움직인 νšŸμˆ˜λ„ λ‘λ²ˆμ΄κ³ , ν•œλ²ˆ 쉴 λ•Œμ—λŠ” 움직인 νšŸμˆ˜κ°€ μ¦κ°€ν•˜μ§€ μ•ŠλŠ”λ‹€. (고둜, κ²°κ΅­ "움직인 횟수"λŠ” 움직인 거리와 λΉ„μŠ·ν•˜λ‹€κ³  보면 λœλ‹€) 판의 μ •λ³΄λŠ” μ˜ˆμ „κ³Ό λ™μΌν•œ μ–‘μ‹μœΌλ‘œ 좜λ ₯ν•œλ‹€.
.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.
λͺ¨λ“  μš”κ΅¬μ‚¬ν•­ 변경이 끝났닀. νžˆλ”©ν¬μ²˜λŸΌ "μ—¬μ „νžˆ λ°°κ°€ κ³ ν”„λ‹€"λ©΄, 이 κ²Œμž„μ„ 삼차원(큐빅)으둜 ν™•μž₯ν•˜λŠ” 것을 κ³ λ €ν•΄ 보라. μž…λ ₯/좜λ ₯자료의 μŠ€νŽ™ 등은 λͺ¨λ‘ μžμ‹ μ΄ νŒλ‹¨ν•΄μ„œ 직접 μ •μ˜ν•˜λΌ. μ–΄μ°Œ λ˜μ—ˆκ±΄ μ—¬κΈ°κΉŒμ§€ λ„λ‹¬ν•œ 것을 μ§„μ‹¬μœΌλ‘œ μΆ•ν•˜ν•œλ‹€.

λŒ€λΆ€λΆ„μ˜ ν•™μŠ΅μžλŠ” 일단 문제의 닡에 λ„λ‹¬ν•˜λ©΄ κ·Έ κ²½ν—˜μ„ μ™„μ „νžˆ 망각해 λ²„λ¦¬λŠ” λ‚˜μœ μŠ΅κ΄€μ΄ μžˆλ‹€ -- 이런 μ‚¬λžŒλ“€μ€ λ¬Έμ œλΌ ν’€κΈ΄ ν’€μ—ˆμœΌλ˜, λ‹€μŒ λ²ˆμ— μœ μ‚¬ λ¬Έμ œλΌ μ ‘ν•˜λ©΄ μ—¬μ „νžˆ κ·Έ λ¬Έμ œλΌ μ²˜μŒ μ ‘ν–ˆμ„ λ•ŒλΌ λ‹΅μŠ΅ν•˜λŠ” 제자리 κ±ΈμŒμ„ ν•˜κΈ° 쉽닀. μžμ‹ μ˜ κ²½ν—˜μ„ λ°˜μΆ”ν•΄ λ³΄λŠ” 것은 효과적인 ν•™μŠ΅μ— μžˆμ–΄ ν•„μˆ˜μ μΈ μš”μ†Œλ‹€. λ‹€μŒ ν™œλ™μ„ κΌ­ 해보길 κΆŒν•œλ‹€. μ—„μ²­λ‚˜κ²Œ λ§Žμ€ 것을 배우게 될 것이닀.

남 κ΄€μ°°/λΆ„μ„ν•˜κΈ°

λ‹€λ₯Έ μ‚¬λžŒμ˜ μ½”λ“œμ™€ κ·Έ μ½”λ“œκ°€ λ‚˜μ˜¨ 과정을 κ°€λŠ₯ν•˜λ‹€λ©΄ κ΅¬κ²½ν•˜κ³  λΆ„μ„ν•˜λΌ. μžμ‹ κ³Όμ˜ 차이점과 μœ μ‚¬μ μ€ 무엇인가?

각 μš”κ΅¬μ‚¬ν•­ 변경에 λ‹€λ₯Έ μ‚¬λžŒμ€ μ–΄λ–€ μ‹μœΌλ‘œ λŒ€μ‘ν–ˆλŠ”κ°€?

μžμ‹ μ΄ μ‚¬μš©ν•œ 방법과 비ꡐ해 보라. λˆ„κ΅¬μ˜ 것이 더 λ‚«λ‹€κ³  μƒκ°ν•˜λŠ”κ°€?

λͺ‡ λͺ‡ μ‚¬λžŒλ“€μ΄ κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©ν•˜λŠ” "쒋은 접근법"κ³Ό "λ‚˜μœ 접근법"이 μžˆλŠ”κ°€?

λ‚΄ ν”„λ‘œκ·Έλž¨μ„, 또 κ·Έ μ§„ν™”μ˜ 과정을 λ‚¨μ—κ²Œ 보여주고 μ˜κ²¬μ„ 듀어보라.

μƒˆλ‘œν•˜κΈ°

졜초의 μš”κ΅¬μ‚¬ν•­ μ œμ‹œ 이후에 λ‚˜μ˜¨ 변경사항듀이 λ”°λΌμ˜€μ§€ μ•Šμ„ 것이라 κ°€μ •ν•˜κ³ , λ§Œμ•½ 이 RandomWalk2 λ¬Έμ œλΌ λ‹€μ‹œ μ ‘ν–ˆλ‹€λ©΄ μ–΄λ–»κ²Œ μ ‘κ·Όν•˜κ² λŠ”κ°€. μ–΄λ–€ 과정을 κ±°μ³μ„œ μ–΄λ–€ ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κ² λŠ”κ°€?

졜초의 μš”κ΅¬μ‚¬ν•­μ„ "μƒˆλ‘œ μ ‘ν–ˆλ‹€"κ³  κ°€μ •ν•˜κ³ , 그리고 기쑴에 μ–»μ—ˆλ˜ "톡찰"λ§Œμ„ κ°„μ§ν•œ 채, (졜초 μš”κ΅¬μ‚¬ν•­μ— λŒ€ν•΄μ„œλ§Œ) 이 λ¬Έμ œλΌ λ‹€μ‹œ ν•œλ²ˆ 풀어보라. (μ°¨ν›„μ˜ μš”κ΅¬μ‚¬ν•­ 변경에 λŒ€ν•œ κ³ λ €λŠ” ν•˜μ§€ 말라.)

λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ΄ λ‚˜μ˜€λŠ”κ°€? μ‹œκ°„μ€ μ–Όλ§ˆλ‚˜ 덜/더 κ±Έλ¦¬λŠ”κ°€? λ””μžμΈμ€ μ–΄λ–»κ²Œ λ‹¬λΌμ‘ŒλŠ”κ°€?

이와 λΉ„μŠ·ν•œ λ¬Έμ œλΌ ν˜Ήμ‹œ 과거에 μ ‘ν•΄λ³΄μ•˜λŠ”κ°€? κ·Έ λ¬Έμ œλΌ μ΄μ œλŠ” μ€ λ‹€λ₯΄κ²Œ 풀것 같지 μ•Šμ€κ°€? κ·Έ λ¬Έμ œμ™€ RandomWalk2 κ²½ν—˜μ—μ„œ μ–΄λ–€ 곡톡점/차이점을 끄집어 λ‚Ό 수 μžˆκ² λŠ”κ°€? μ–΄λ–€ κ΅ν›ˆμ„ μ–»μ—ˆλŠ”κ°€? μžμ‹ μ˜ λ””μžμΈ/ν”„λ‘œκ·Έλž˜λ° μ‹€λ ₯이 λŠ˜μ—ˆλ‹€λŠ” 생각이 λ“œλŠ”κ°€?

λ§Œμ•½ 이 문제의 λͺ¨λ“  "μš”κ΅¬μ‚¬ν•­+변경사항듀"이 ν•œ λ©μ–΄λ¦¬μ˜ "졜초 μš”κ΅¬μ‚¬ν•­"으둜 μ²˜μŒλΆ€ν„° ν•œκΊΌλ²ˆμ— μ£Όμ–΄μ‘Œλ‹€λ©΄ μžμ‹ μ€ μ–΄λ–»κ²Œ 이 λ¬Έμ œλΌ ν’€μ—ˆμ„ 것 같은가? μ–΄λ–»κ²Œ λ¬Έμ œμ— μ ‘κ·Όν–ˆμ„ 것이며, μ–΄λ–€ 과정을 κ±°μ³€μ„κΉŒ? 또, μ–΄λ–»κ²Œ ν‘ΈλŠ” 것이 효율적일까?

λ‹€λ₯Έ μΉœκ΅¬μ™€ PairProgramming을 ν•΄μ„œ 이 λ¬Έμ œλΌ λ‹€μ‹œ 풀어보라. κ·Έ μΉœκ΅¬λŠ” λ‚΄κ°€ μ „ν˜€ μƒκ°ν•˜μ§€ λͺ»ν–ˆλ˜ 것을 μ œμ•ˆν•˜μ§€λŠ” μ•ŠλŠ”κ°€? κ·Έ μΉœκ΅¬λ‘œλΆ€ν„° 무엇을 배울 수 μžˆλŠ”κ°€? λ‘˜μ˜ μ‹œλ„ˆμ§€ 효과둜 λ‘˜ 쀑 아무도 λͺ°λžλ˜ μ–΄λ–€ 것을 ν•¨κ»˜ κ³ μ•ˆν•΄ λ‚΄μ§€λŠ” μ•Šμ•˜λŠ”κ°€?


  • 질문: λ³€κ²½4μ—μ„œ μŒμ‹μ˜ μœ„μΉ˜λŠ” μ˜λ„μ μœΌλ‘œ 바퀴가 μ§€λ‚˜κ°€μ§€ μ•ŠλŠ” 곳에 λ†“μ€κ±΄κ°€μš”? --sun

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:49
Processing time 0.0776 sec