살아가면서/생각하면서
배운것과 내가 아는것은 다르구나......
오산돌구
2012. 3. 23. 00:17
반응형
요새 회사에서 진행하는것 때문에 틈나는대로 Ruby를 보고 있다.
또 배우는김에 이번에 알고스팟에서 Ruby로도 문제를 풀수있게 되서 한번 해봤다.
문제 url : http://algospot.com/judge/problem/read/DRAWRECT
문제를 봤을때 더하고 빼고 해면 될것 같았는데 잘 안됐고, sort 남발, 경우의수 다 집어 넣어서 억지로 정답! 을 얻었다.
그 코드는.....후덜덜
Integer(gets).times{
x = []
y = []
3.times {
inputs = gets.chomp
if inputs.respond_to?("split")
input = inputs.split
x.push(input[0].to_i)
y.push(input[1].to_i)
end
}
x = x.sort
y = y.sort
selectX = 0
selectY = 0
firstX = 0
firstY = 0
x.each do |number|
if selectX == 0
selectX = number
firstX = number
next
end
if selectX == number
selectX = 0
elsif selectX != number
selectX = number
end
end
y.each do |number|
if selectY == 0
selectY = number
firstY = number
next
end
if selectY == number
selectY = 0
elsif selectY != number
selectY = number
end
end
if selectX == 0
selectX = firstX
end
if selectY == 0
selectY = firstY
end
puts "#{selectX} #{selectY}"
}
정답을 맞추면 다른사람들은 어떻게 했는지 볼수있는데,
아~~~~~~~~~~~~~!!!! XOR연산~!!그때 parity check가 생각이 났다.....
이미 난 배운건데 정작 써먹어야할때는 생각이 나지않았다.
Integer(gets).times{
selectX = 0
selectY = 0
3.times {
inputs = gets.chomp
if inputs.respond_to?("split")
input = inputs.split
selectX ^= input[0].to_i
selectY ^= input[1].to_i
end
}
puts "#{selectX} #{selectY}"
}
수행시간은 왜 처음것이 빠르지?;;;
내게 도움이 될만한 무엇인가를 배웠다면, 내것으로 꼭~!! 만들자~!!
반응형