최근 방문자들
풀이
Four Boxes (Ruby)
2008. 09. 17. 15:18 | 조회수(462)
http://club.filltong.net/codingdojo/6546
1 position = [[1, 2, 4, 4],
2 [2, 3, 5, 7],
3 [3, 1, 6, 5],
4 [7, 3, 8, 6]]
5
6 space = Array.new(1000*1000, 0)
7 area = 0
8
9 def getPos(x, y)
10 return x+(y*1000)
11 end
12
13 position.each do | x1, y1, x2, y2 |
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)
- CoMK:D: 제가 잘 쓰는 방법은 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 - Bayja: 오오오... each 뒤로 배열을 통으로 넘기면서, 원소(?)마다 이름을 정해줄 수 있군요. 짝대기 사이에 문자가 네 개! 잘 배워갑니다~ 2008. 09. 17. 22:52
- 카페모카: 흑흑.. 나도 코딩하고 시퍼라 ㅡ ㅡ;; 2008. 09. 17. 22:59







