직각삼각형 배열 값 채우기 예제
★프로그래밍/Ruby :: 2016. 8. 28. 23:03루비로 2차원 배열에 직각삼각형으로 값을 채우는 예제입니다.
정보처리기능사 실기 알고리즘 문제에 비슷한 문제가 있었는데요.
이 예제에서의 규칙은 다음과 같이 설정했습니다.
- 시작 값은 1입니다.
- 첫 행은 맨 마지막 열만 채웁니다.
- 두 번째 행은 맨 마지막의 두 열만 채우되, 맨 마지막 두 번째는 5, 맨 마지막은 9입니다.
- 세 번째 행은 맨 마지막의 세 열만 채우되, 맨 마지막 세 번째부터 13, 17, 21 순입니다.
- 이런 식으로 4씩 커지면서 직각삼각형으로 채워집니다.
이 규칙에 따른 코딩입니다.
arr_size = 8 # 배열 크기 설정 # 배열과 채울 숫자를 미리 선언해 둡니다. arr = Array.new(arr_size) { Array.new(arr_size, 0) } fillnum = 1 0.upto(arr_size-1) do |y| (arr_size-1-y).upto(arr_size-1) do |x| arr[y][x] = fillnum fillnum += 4 end end 0.upto(arr_size-1) do |y| 0.upto(arr_size-1) do |x| if arr[y][x] > 0 print sprintf(" %3d ", arr[y][x]) else print " " end end puts end
이 코드를 실행해 보면 다음과 같습니다.
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97 101 105 109 113 117 121 125 129 133 137 141
유용하게 활용하시기 바랍니다.