반응형
정수 값을 기반으로 n 항목의 배열 만들기
정수 값이 예를 들어 10.
10 개 요소의 배열을 어떻게 만들 수 [1,2,3,4,5,6,7,8,9,10]있습니까?
범위를 표시 할 수 있습니다.
[*1..10]
#=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Ruby 1.9는 여러 개의 표시를 허용하며 이는 다소 편리합니다.
[*1..3, *?a..?c]
#=> [1, 2, 3, "a", "b", "c"]
또 다른 까다로운 방법 :
> Array.new(10) {|i| i+1 }
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def array_up_to(i)
(1..i).to_a
end
이를 통해 다음을 수행 할 수 있습니다.
> array_up_to(10)
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
까다로운 방법이있는 주석 :
require 'benchmark'
Benchmark.bm { |x|
x.report('[*..] ') do
[*1000000 .. 9999999]
end
x.report('(..).to_a') do
(1000000 .. 9999999).to_a
end
x.report('Array(..)') do
Array(1000000 .. 9999999)
end
x.report('Array.new(n, &:next)') do
Array.new(8999999, &:next)
end
}
이 까다로운 방법 Array.new(n, &:next)은 속도가 느리지 만 다른 세 가지 기본 방법은 동일합니다.
user system total real
[*..] 0.734000 0.110000 0.844000 ( 0.843753)
(..).to_a 0.703000 0.062000 0.765000 ( 0.843752)
Array(..) 0.750000 0.016000 0.766000 ( 0.859374)
Array.new(n, &:next) 1.250000 0.000000 1.250000 ( 1.250002)
다음과 같이 할 수 있습니다.
array= Array(0..10)
입력하려면 다음을 사용할 수 있습니다.
puts "Input:"
n=gets.to_i
array= Array(0..n)
puts array.inspect
참고 URL : https://stackoverflow.com/questions/11173173/create-array-of-n-items-based-on-integer-value
반응형
'Program Club' 카테고리의 다른 글
| MVVM이 EventArgs를 명령 매개 변수로 전달 (0) | 2020.12.06 |
|---|---|
| jQuery : target =“_ blank”인 URL로 이동 (0) | 2020.12.06 |
| Visual Studio 2012를 사용하여 '312e8a59-2712-48a1-863e-0ef4e67961fc'페이지를 찾을 수 없음 (0) | 2020.12.06 |
| html5 필수 속성을 제거하는 jquery (0) | 2020.12.06 |
| Node.js (및 Chrome V8)의 메모리 제한 (0) | 2020.12.05 |