일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 건담
- 건담베이스
- 비즈니스일본어
- ruby
- 디지몬
- Web
- 一日一つメソッド
- javascript
- 자바
- DART
- vscode
- nico
- jsp
- rails7
- C로 시작하는 컴퓨터 프로그래밍4판
- 연습문제
- Python
- html
- 일본어
- 반다이몰
- Spring
- springboot
- 日本語
- メソッド
- Flutter
- rails
- java
- CSS
- 単語
- 인프런
- Today
- Total
AR삽질러
Ruby 연습문제 본문
Ruby 연습문제
0. 문자열 반전
def reverse_string(str)
end
puts reverse_string("Hello, Ruby!")
def reverse_string(str)
str.reverse
end
puts reverse_string("안녕하세요! Ruby공부를 시작했습니다!")
reverse : 배열이나 문자열의 요소를 역순으로 반전
0-1. 배열 반전
def reverse_array(arr)
arr.reverse
end
arr = [4, 3, 2, 9, 8]
puts reverse_array(arr).inspect # 8, 9, 2, 3, 4
1. 배열의 합
def array_sum(arr)
# 여기에 코드 작성
end
puts array_sum([1, 2, 3, 4, 5]) # 15
def array_sum(arr)
sum = 0
arr.each do |num|
sum += num
end
sum
end
def array_sum2(num)
sum = 0
num.each do |num|
sum += num
end
sum
end
puts array_sum([1, 2, 3, 4, 5]) # 15
puts array_sum2([10, 20, 30, 40, 50]) # 150
each : 배열, 해시 등 열거형 객체의 각 요소에 대해 코드 블록을 실행한다.
|num| : 코드 블록 내에서 현재 요소를 참조하는데 사용되는 변수이다.
2. 팩토리얼 계산
def factorial(n)
# 여기에 코드 작성
end
puts factorial(5) # 120
2-1. 재귀함수
def factorial(n)
return 1 if n == 0
n * factorial(n -1)
end
puts factorial(5) # 120
factorial(n) : 변수 b을 받아 n의 팩토리얼을 계산한다.
return 1 if n == 0 : n 이 0일 때 1을 반환한다. (0 != 1)
n * factorial(n - 1) : n이 0이 아니면 현재의 n과 n-1의 팩토리얼의 곱을 반환한다.
2-2. 반복문
def factorial(n)
result = 1
(1..n).each do |i|
result *= i
end
result
end
puts factorial(5) # 120
factorial(n) : n을 입력받아 그 수의 팩토리얼을 계산한다.
result : 변수를 1로 초기화한다.
(1..n).each do |i| : 1 ~ n까지 반복문을 실행한다.
result *- i : 변수에 현재 숫자 i를 곱해
end result : 최종값을 반환한다.
3. 중복 요소 찾기
def find_duplicates(arr)
# 여기에 코드 작성
end
puts find_duplicates([1, 2, 3, 3, 4, 5, 5]).inspect # [3, 5]
def find_duplicatenumber(arr)
arr.find_all {|item| arr.count(item) > 1}.uniq
end
puts find_duplicatenumber([1, 2, 3, 3, 4, 5, 5]).inspect # 3, 5
find_duplicates(arr) : 매개변수 arr를 받는다.
find_all : Ruby의 Enumerable 모듈의 메서드중 하나로 모든 요소를 순회하며 블록의 조건을 만족하는 요소로 배열을 만든다.
{|item| arr.count(item) > 1}.uniq : |item|은 arr배열의 각 요소를 나타낸다. arr.count(item) > i 조건은 배열 내의 item의 개수가 1보다 큰지를 확인한다.
uniq : 배열에서 중복된 요소를 제거한다.
.inspect : 문자열 형태로 반환
3-1. 숫자중 짝수 / 홀수 찾기
def number1(num)
num.find_all{|num| num.even?} # 짝수
end
def number2(num)
num.find_all{|num| num.odd?} # 홀수
end
num = [1, 2, 3, 4, 5, 6]
puts number1(num).inspect
puts number2(num).inspect
even? : 짝수판별
odd? : 홀수판별
find_all : 특정 조건을 충족하는 요서만 새로운 배열을 생성
.inspect : 문자열 형태로 반환
4. 랜덤 숫자 배열 생성 후 정렬
def generate_and_sort_array
# 여기에 코드 작성
end
generate_and_sort_array
4-1. 오름차순 정렬
def generate_and_sort_array
array = Array.new(rand(1..20)) {rand(1..100)}
sorted_array = array.sort
puts "원래 배열 : #{array.inspect}"
puts "정렬된 배열 : #{sorted_array.inspect}"
end
def generate_and_sort_array
array = Array.new(rand(1..20)) {rand(1..100)}
sorted_array = array.sort
puts "원래 배열 : #{array.inspect}"
puts "정렬된 배열 : #{sorted_array.inspect}"
end
generate_and_sort_array
array = Array.new(rand(1..20)) {rand(1..100)} : 배열을 생성한다. 배열의 크기는 1 ~ 20까지 랜덤이고, 각 요소는 1 ~ 100까지 랜덤한 수이다.
sorted_array = array.sort : 생성된 배열을 오름차순으로 정렬한다.
4-2. 내림차순 정렬
def ascendingOrder
array = Array.new(rand(1..20)) {rand(1..100)}
sorted_array = array.sort{|a, b| b <=> a}
puts "원래 배열 : #{array.inspect}"
puts "내림차순 배열 : #{sorted_array.inspect}"
end
sorted_array = array.sort{|a,b| b <=> a} : 생성된 배열을 내림차순으로 정렬한다. b <=> 를 사용하여 순서를 반전시킨다.
4-3. 짝수 추출 후 오름차순 정렬
def evenSort
array = Array.new(rand(1..20)){rand(1..100)}
even_array = array.select{|num| num.even?}.sort
puts "원래 배열 : #{array.inspect}"
puts "짝수 추출 후 오름차순 정렬 : #{even_array.inspect}"
end
evenSort
even_array = array.select{|num| num.even?}.sort : 배열에서 짝수만 선택한 후 오름차순으로 정렬한다.
4-4. 홀수 추출 후 내림차순 정렬
def oddSort
array = Array.new(rand(1..20)){rand(1..100)}
odd_array = array.select{|num| num.odd?}.sort.reverse
puts "원래 배열 : #{array.inspect}"
puts "홀수 추출 후 내림차순 정렬 : #{odd_array.inspect}"
end
oddSort
odd_array = array.select{|num| num.odd?}.sort.reverse : 배열에서 홀수만 선택한 후 결과를 오름차순으로 정렬한뒤 반전시켜 내림차순으로 만든다.
'Ruby > Ruby-한국어' 카테고리의 다른 글
Ruby 메소드 - (6) (0) | 2023.08.30 |
---|---|
Ruby 제어문 - (5) (0) | 2023.08.29 |
Ruby goormide 환경설정 - (1) (0) | 2023.08.29 |
Ruby 연산자 - (4) (0) | 2023.08.28 |
Ruby 변수와 상수 - (3) (0) | 2023.08.27 |