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 ABC306(A, B, C)を解いてみた

Posted at

はじめに

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

A - Echo

a-293.rb
gets
gets.chomp.chars{ print _1 * 2}

B - Base 2

b-293.rb
a = gets.split.map(&:to_i)
puts a.map.each_with_index{ _1 * (2 ** _2) }.sum

解説

Aの各要素をa[i] * 2 ^ iでマッピングした後の要素の総和を出力すればOKです。

C - Centers

c-293.rb
n = gets.to_i
a = gets.split.map(&:to_i)

hash = Hash.new(0)
ans = []
a.each do
  hash[_1] += 1
  if hash[_1] == 2
    ans << _1
  end
  break if ans.size == n
end
puts ans.join(" ")

解説

連想配列hashを用意しておき、順に要素に対応する値を更新しておきます。そして、値が2となった要素(数字)をans配列に格納していきans配列の大きさがnとなったらループから抜けます。最後に、ans配列を空白区切りで出力することで答えが求まります。

0
0
0

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?