【Ruby】問題集解答 Part6（paizaラーニング）

# 1 つの文字列を出力 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__stdout_1
### 自分の解答
```ruby:practice_01.rb
puts "paiza"
```
末尾に改行を入れなければならないので、`print`ではなく`puts`を使う。
### ChatGPTの解答
もちろんです。質問の内容が不足しているようですが、とりあえず "paiza" という文字列を1行で出力するRubyのコードを以下に示します。
```ruby
puts "paiza"
```
このコードを実行すると、"paiza"という文字列が1行で出力されます。

# 2 つの文字列を出力 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__stdout_2
### 自分の解答
```ruby:practice_02.rb
puts "paiza learning"
```

### ChatGPTの解答
以下は、指定された条件に従ったRubyのコードです。

```ruby
puts "paiza learning"
```

このコードを実行すると、"paiza learning"という文字列が1行で出力されます。

# 1 行の出力 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__stdout_3
### 自分の解答
```ruby:practice_03.rb
puts 813
```
### ChatGPTの解答
以下は、指定された条件に従ったRubyのコードです。

```ruby
puts 813
```

このコードを実行すると、整数813が1行で出力され、末尾に改行が入ります。

# 3 行の出力 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__stdout_4
### 自分の解答
```ruby:practice_04.rb
puts 8
puts 1
puts 3
```
このあたりからすでにセンスを問われている気がするが、やはり一番の模範解答はこれだと思う。
### ChatGPTの解答
以下は、指定された条件に従ったRubyのコードです。

```ruby
puts 8
puts 1
puts 3
```

このコードを実行すると、それぞれの数値が3行で出力され、末尾に改行が入ります。

# 2 つの数値を出力 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__stdout_boss
### 自分の解答
```ruby:practice.rb
puts "#{1} #{1}"
```
### ChatGPTの解答
以下は、指定された条件に従ったRubyのコードです。

```ruby
puts "1 1"
```

このコードを実行すると、"1 1"という文字列が1行で出力され、末尾に改行が入ります。
### 感想
問題文には「数値」とあるので式展開を使って書いたが、paizaとしてはどちらでも良いみたい。

# 足し算 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__arithmetic_substitution_op_1
### 自分の解答
```ruby:practice.rb
puts 1231 + 5178
```
### ChatGPTの解答
以下は、指定された条件に従ったRubyのコードです。

```ruby
puts 1231 + 5178
```

このコードを実行すると、1,231と5,178の和が計算され、その結果が1行で出力されます。

# 割り算 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__arithmetic_substitution_op_2
### 自分の解答
```ruby:practice.rb
A = 437326
B = 9085

puts "#{A / B} #{A % B}"
```
### ChatGPTの解答
以下は、指定された条件に従ったRubyのコードです。

```ruby
A = 437326
B = 9085

X = A / B
Y = A % B

puts "#{X} #{Y}"
```

このコードを実行すると、AをBで割った商をX、AをBで割った余りをYとして、それらが半角スペース区切りで1行で出力されます。
### 学び・感想
自分の解答の方がより少ないコードで書けてはいるが、ChatGPTのコードの方が可読性が高い気がする。
ちょっとしたことにもこだわる姿勢は重要かもしれないが（現時点では気づいていないが、実は重要であるかもしれないため）、今はこのようなことにはあまり時間を使わないこととする。

# 累乗 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__arithmetic_substitution_op_3
### 自分の解答
```ruby:practice.rb
A = 202
B = 134
C = 107

N = ((A + B) * C) ** 2

puts N
```

### ChatGPTの解答
以下は、指定された条件に従ったRubyのコードです。

```ruby
A = 202
B = 134
C = 107

N = ((A + B) * C) ** 2

puts N
```

このコードを実行すると、指定された計算式の結果であるNが1行で出力され、末尾に改行が入ります。
### 学び・感想
べき乗は`**`で計算できる。

# 代入演算 1 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__arithmetic_substitution_op_boss
### 自分の解答
```ruby:practice.rb
N = 0

N += 3286
N *= 4736
N %= 12312

puts N
```
### ChatGPTの解答
以下は、指定されたアルゴリズムに基づいたRubyのコードです。

```ruby
N = 0
N += 3286
N *= 4736
N %= 12312

puts N
```

このコードを実行すると、指定されたアルゴリズムに基づいた計算結果であるNが1行で出力され、末尾に改行が入ります。

# 1 行の入力 (paizaランク D 相当)
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__stdin_1
### 自分の解答
```ruby:practice.rb
s = gets

puts s
```

### ChatGPTの解答
以下は、指定された条件に従ったRubyのコードです。

```ruby
s = gets.chomp
puts s
```

このコードを実行すると、標準入力から与えられた文字列をそのまま出力し、末尾に改行が入ります。
### 学び・感想
ここまで超超超基礎的な問題集を解いてきましたが、すべてをQiitaに投稿するのは少し負担が大きいため、今後は一部のみ投稿することにします。