LoginSignup
0
0

More than 1 year has passed since last update.

crystal の AtCoder における Set の使用(健忘録)

Posted at

はじめに

@u2dayo さんのコードを写経していましたところSetを使用されていました。
普段はHashで代用していますが、Setの使用方法の健忘録とCrystallizer2の更新を行いました。

C問題『Poem Online Judge』

Ruby版

require "set"

n = gets.to_i
seen = Set.new
max_t = -1
ans = 0
(1...n+1).each do |i|
  s, t = gets.split
  next if seen.include?(s)
  seen << s
  t = t.to_i
  if max_t < t
    max_t = t
    ans = i
  end
end
puts ans

Rubyですとrequire "set"しないといけないです。

crystal版

require "set"

n = read_line.to_i
seen = Set(String).new
max_t = -1
ans = 0
(1...n+1).each do |i|      
  s, t = read_line.split   
  next if seen.includes?(s)
  seen << s
  t = t.to_i
  if max_t < t
    max_t = t
    ans = i
  end
end
puts ans

crystalではrequire "set"は本来不要ですが、あっても動作するようなので、とりあえずそのままとしています。

- seen = Set(Int32).new
+ seen = Set(String).new

この部分はInt32に決め打ちをしていますので、問題に合わせ修正する必要があります。

Ruby crystal
実行時間(ms) 183 51

まとめ

crystalSetに詳しくなりました。

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