require'set'instructions=[]File.readlines('08.txt').eachdo|line|code,argument=line.split(' ')instructions.push[code,argument.to_i]endswap_indices=instructions.each_with_index.selectdo|instruction,i|code=instruction[0]code=='nop'orcode=='jmp'end.mapdo|instruction,i|iendswap_indices.eachdo|j|acc=0i=0visited=Set.newnew_instructions=Marshal.load(Marshal.dump(instructions))ifnew_instructions[j][0]=='jmp'new_instructions[j][0]='nop'elsenew_instructions[j][0]='jmp'enduntilvisited.include?icode,argument=new_instructions[i]visited.addicasecodewhen'nop'# Do nothingi+=1when'acc'acc+=argumenti+=1when'jmp'i+=argumentwhennil# Stepped out of instructions arrayputsaccbreakendendend
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Ruby, part 2: