121

코딩 도장

일주일에 하나씩 가벼운 마음으로 코드를 작성합니다. 누가 떠밀지 않아도 스스로 자라길 원하는 사람들...
클럽장: 아샬 | http://club.filltong.net/codingdojo
최근 방문자들   모든회원보기
풀이 풀이
Four Boxes (Ruby)  

2008. 09. 17. 15:18   |   조회수:383
지아 지아
http://club.filltong.net/codingdojo/6546  복사

 1 position = [[1244],
 2         [2357],
 3         [3165],
 4         [7386]]
 5 
 6 space = Array.new(1000*10000)
 7 area = 0
 8 
 9 def getPos(x, y)
10   return x+(y*1000)
11 end
12 
13 position.each do  | x1y1x2y2 |
14   (y1..(y2-1)).each do | y |
15     (getPos(x1, y)..getPos((x2-1), y)).each do | pos |
16       space[pos] = 1
17     end
18   end
19 end
20 
21 space.each do | tile |
22   if tile == 1
23     area = area + 1
24   end
25 end
26 
27 puts area

 

루비에서 2차원 배열 사용하는 방법을 몰라서 단순무식하게 계산해버렸습니다.

코드 이쁘게 올리는 방법 좀 알려주세요~

댓글 7

  • 제가 잘 쓰는 방법은 gvim에서 HTML로 변환한 후 HTML 파일을 브라우저에서 연 다음 copy & paste. 2008. 09. 17. 16:43
  • 오오 이런 방법이.. ㅋㅋ 이제 좀 봐줄만 하네요.. 2008. 09. 17. 17:00
  • 루비에서 2차원 배열 인덱스로 접금하는 방법을 몰라서 무식하게 getPos 같은 걸 사용하게 되었는데,
    누구 알려주실 분 안 계신가요?? (굽신굽신)

    2차원 배열을 쓰겠다는 생각 자체가 NG 였나요?
    2008. 09. 17. 21:38
  • 요렇게 하면 어떤가요?
    space = Array.new(10) { Array.new(10, 0) }

    position.each do |x1, y1, x2, y2|
    (y1..(y2-1)).each do |y|
    (x1..(x2-1)).each do |x|
    space[x][y] = 1
    end
    end
    end
    2008. 09. 17. 21:52
  • space[x][y] 에 값을 넣으면 에러가 나서 루비에서 2차원 배열 인덱스로 접근을 할 수 없는 건 아닌가 고민도 했었는데, 배열 생성하는데 비밀이 있었군요...

    오늘 하루종일 저를 괴롭히던 궁금증을 풀어주셨어요... ㅠㅠ
    감사합니다. ^^/
    2008. 09. 17. 21:59
  • 오오오... each 뒤로 배열을 통으로 넘기면서, 원소(?)마다 이름을 정해줄 수 있군요. 짝대기 사이에 문자가 네 개! 잘 배워갑니다~ 2008. 09. 17. 22:52
  • 흑흑.. 나도 코딩하고 시퍼라 ㅡ ㅡ;; 2008. 09. 17. 22:59
등록
목록 맨뒤로 글쓰기
다음글다음글   Four Boxes (Ruby) - 개선판   |   
이전글이전글   Four Boxes (Ruby)   |