살아가면서/생각하면서

배운것과 내가 아는것은 다르구나......

오산돌구 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}"
}


수행시간은 왜 처음것이 빠르지?;;;

내게 도움이 될만한 무엇인가를 배웠다면, 내것으로 꼭~!! 만들자~!!

반응형