0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RubyでAtCoder ABC280(A, B, C)を解いてみた

Last updated at Posted at 2023-04-15

はじめに

Webエンジニアを目指して、RubyやRailsをいじってます。
今回は、RubyでAtCoder ABC280のA, B, Cを解きました。備忘録として解き方をまとめていきたいと思います。

A - Pawn on a Grid

a-280.rb
h, w = gets.split.map(&:to_i)
s = Array.new(h){ gets.chomp }.join
puts s.count("#")

解説

countメソッドを使って#の数を数え上げています。

B - Inverse Prefix Sum

b-280.rb
n = gets.to_i
s = gets.split.map(&:to_i)
a = [s[0]]
(1..n - 1).each do |i|
  a << s[i] - s[i - 1]
end
puts a.join(" ")

<追記>
コメントでいただいた別解になります。

別解
n = gets.to_i
ss = gets.split.map(&:to_i)

result = ss.each_cons(2).map { _2 - _1 }
puts [ss[0]].concat(result).join(" ")

解説

例えば、S3=A1+A2+A3=S2+A3であることから、A3=S3-S2となります。この関係式を順に適用していき数列Aを求めていきます。

C - Extra Character

c-280.rb
s = gets.chomp
t = gets.chomp
n = s.size
for i in 0..n - 1
  if s[i] != t[i]
    puts i + 1
    exit
  end
end
puts n + 1

解説

順に調べていき一致しないところがあればそのindexを出力して終了、最後まで行ければ文字は末尾に挿入されたということなのでs.size+1を出力します。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?