U E D R , A S I H C RSS

정모/2011.4.4/Code Race/김수경

River Crossing

  • 2011ë…„ 4ì›” 4ì�¼ 정모ì—�서 ì§„í–‰ë�œ ë ˆì�´íм êµ�수와 함께하는 CodeRace.ì§„í–‰ìž�ë�¼ì„œ ì§�ì ‘ CodeRaceì—� 참여하지 못한 것ì�´ 아쉬워 늦게ë�¼ë�„ 코딩해본다. 오늘 ì •ë§� ì�¼ì°� ìž�려고 했는ë�° 누워있다가 ì�´ê±° 너무너무 짜보고 ì‹ì–´ì„œ ê°‘ìž�기 ìž ì�´ 슬슬 깨길래 어떻게 í•  ì§€ 고민. 고민하다 ìž ì�´ 달아날 ì •ë�„로 하고 ì‹ì�€ 것ì�€ 그냥 넘기면 안 ë�˜ê² ë‹¤ ì‹ì–´ 새벽 3시ì—� ì�¼ì–´ë‚˜ 코딩 시작.
  • 사용 언어는 RubyLanguage
  • TDD로 개발하려 했는ë�° rake aborted! No Rakefile found. ë�¼ëŠ” 메세지가 뜨면서 테스트가 실행ë�˜ì§€ 않아 í�¬ê¸°í•¨. 한시간ë�™ì•ˆ 계ì†� 찾아봤지만 모르겠다. ì˜�ì–´ 문서를 ì�½ìœ¼ë©´ 답ì�´ 있ì�„ 것 ê°™ì�€ë�° ë�” ì�´ìƒ�ì�€ ì˜�어를 ì�½ê³ ì‹ì§€ì•Šì•„ㅜㅜㅜㅜㅜㅜ
  • 넷빈즈가 ì�´ìƒ�해서 ë˜� 한시간ì�„ ë�” 날렸다... 피곤하니 ìž�러가야지.

목표

  • 모든 사람ì�´ A 마ì�„ì—�서 B 마ì�„로 건너간다.

전제

  • A 마ì�„ê³¼ B 마ì�„ 사ì�´ì—�는 ê°•ì�´ 있다.
  • ê°•ì�€ 너무나 ë„“ê³  깊기 때문ì—� 배를 타지 않고 ê±´ë„� 수 없다.

Step 1

  • ë ˆì�´íм êµ�수가 A 마ì�„ì—�서 B 마ì�„로 건너간다.

class Layton
  @location
  attr_accessor :location

  def initialize
    @location = false
  end

  def crossRiver
    @location = true
  end
end
layton = Layton.new()
layton.crossRiver

if !layton.location
  print "FAIL"
end

Step 2

  • ë ˆì�´íм êµ�수는 배를 타고 ë§žì�€íޏ 마ì�„로 건너갈 수 있다.
    • A 마ì�„ -> B 마ì�„
    • B 마ì�„ -> A 마ì�„

class Layton
  @location
  attr_accessor :location

  def initialize
    @location = false
  end

  def crossRiver
    @location = !@location
  end
end
class Solver
  def run(person)
    person.crossRiver
  end
end
solver = Solver.new()
layton = Layton.new()
solver.run(layton)

if !layton.location
  print "FAIL"
end

Step 3

  • 루í�¬
    • 루í�¬ëŠ” 어려서 혼ìž�서는 배를 탈 수 없다.

Step 4

  • ë�ˆ 파울로
    • ë�ˆ 파울로는 ë ˆì�´íм êµ�수가 없으면 루í�¬ë¥¼ ê°•ì—� ë�˜ì ¸ë²„린다.

Step 5

  • 2ì�¸ìй ë°°ë§Œ 탈 수 있다.

�아온 레�튼 �수

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:51
Processing time 0.3278 sec