技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

競技プログラミング day5

問題

https://atcoder.jp/contests/abc132/tasks/abc132_b

回答

時間切れなので途で強制終了。(そして内容も間違っている)

# nの値をint型で受付 5
a = gets.chomp.to_i

# nの値をint型で受付 [1,3,5,4,2]
arry = gets.split.map(&:to_i)

cnt = 0
(1..a).each {  |i|
  cnt += 1 if ( (arry[i] < arry[i+1]) && (arry[i+1] < arry[i+2]) )
}

puts cnt

2、解答例

n = gets.chomp.to_i
input = gets.chomp.split(' ').map(&:to_i)
ans = 0
input.each_cons(3) do |a, b, c|
  array = Array.new
  pushed = array.push(a, b, c)
  sorted = pushed.sort
  ans += 1 if pushed== sorted
end
puts ans

学びポイント

each_consを利用すれば引数で指定した数を代入した配列が利用できる。

(1..10).each_cons(3) { |a| p a }
# outputs below
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
[4, 5, 6]
[5, 6, 7]
[6, 7, 8]
[7, 8, 9]
[8, 9, 10]

感想

制限時間30分超えたのでゲームオーバー。 この問題は並び替えアルゴリズムの知識が問われる問題でなかなかめんどかった・

所有時間

制限時間30ふん超え