Created
September 22, 2024 00:26
-
-
Save gouf/74b7de7896f31a7940e63b9a6eb8f87d to your computer and use it in GitHub Desktop.
Revisions
-
gouf created this gist
Sep 22, 2024 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,81 @@ class Employee attr_reader :record_id, :employee_number, :name def initialize(record_id, employee_number, name) @record_id = record_id.to_i @employee_number = employee_number.to_i @name = name.to_s end end class Employees def initialize @employees = [] end def make(record_id, employee_number, name) @employees << Employee.new(record_id, employee_number, name) end def get_num(record_id) @employees.find { |employee| employee.record_id.eql?(record_id.to_i) }&.employee_number end def get_name(record_id) @employees.find { |employee| employee.record_id.eql?(record_id.to_i) }&.name end end employees = Employees.new # 入力例1 # input = # <<~INPUT.lines.map(&:strip).join("\n") # make 1 nana # getnum 1 # getname 1 # INPUT # 入力例2 input = <<~INPUT.lines.map(&:strip).join("\n") make 2742 mako getnum 1 make 2782 taisei getname 2 make 31 megumi getname 1 getname 3 INPUT count = 1 count_of_make = [] input.lines.each do |line| method_name, _employee_number, _name = line.split if method_name.eql?('make') count_of_make << count count += 1 end end printable_results = [] input.lines.each do |line| # 取り得る値: # make employee_number name # getnum record_id # getname record_id method_name, employee_number, name = line.split record_id = employee_number # あとの処理でどちらかの意味に変わる if method_name.eql?('make') record_id = count_of_make.shift employees.make(record_id, employee_number, name) elsif method_name.eql?('getnum') printable_results << employees.get_num(record_id) elsif method_name.eql?('getname') printable_results << employees.get_name(record_id) end end puts printable_results