20 분 후에 어떤 식 으로든 코딩을 시작해야하는 규칙이 있습니까?
아니요,하지만 업무에 착수하기 전에 20 분 동안 문제를 분석하면 이미 문제가있을 수 있습니다. 인용 한 것과 같은 질문을하는 고용주는 주로 문제에 접근하는 방법에 관심이 있지만, 코딩 문제로 질문하면 코드도보고 싶을 것입니다. 당신의 사고 과정을 통해 그들에게 이야기하십시오 ...
자, 명백한 접근법은 무차별적인 힘입니다. 3 개의 꼭짓점에 대해 직각 삼각형을 인식 할 수있는 방법이 있다면, 두 점과 직각 삼각형을 찾는 원점을 모두 조합 할 수 있습니다. 피타고라스 정리를 사용하여 직각 삼각형을 식별하는 함수를 작성할 수 있습니다. 더 쉽게하기 위해 거리 공식을 사용하여 두 점 사이의 거리를 결정하는 함수도 작성합니다 ...
이러한 기능을 작성하는 데 약 3 분이 소요됩니다. 이제 몇 분만에 이미 기본 지오메트리를 기억하고 실제로 코드 작성 방법을 알고 있음을 보여주었습니다. 또한 이야기 할 내용이 있습니다.
따라서 우리는 분명히 isRightTriangle(p1, p2, p3)
함수를 네 개의 for
루프 중간 에 놓고 두 변수 포인트 각각에 대해 가능한 모든 선택을 반복 할 수 있습니다. 보자 ... 문제는 50x50 격자의 원점을 포함한 직각 삼각형의 수를 요구하므로 무차별 대입법을 사용하면 각 점의 각 좌표에 대해 50 가지 가능성을 확인할 수 있습니다. 그것은 50 ^ 4 검사입니다 ... 우리가 더 잘할 수 있다고 확신하지만 코드는 분명합니다.
이제 중첩 for
루프 를 사용하는 함수 와 isRightTriangle()
방금 작성한 함수를 작성합니다. 문제를 해결했지만 면접관이 어디로 가고 있는지 확인할 수도 있습니다. 그들의 목표가 당신이 코드를 작성할 수 있다는 것을 보는 것이라면, 그들은 멈추라 고 말할 수 있습니다. 아마도 그들은 자신이하고있는 일을 알고있는 사람과 이야기를 나누게되어 기쁘고, 얼마나 멀리 갈 것인지 알고 싶어 할 것입니다. 그래서 당신은 계속 ...
제가 글을 쓰는 동안 대칭을 이용할 수 있다는 것이 저에게 일어났습니다. 주어진 직각 삼각형을 45 ° 선 주위에 반영 할 수 있으므로 해당 선의 한쪽에만있는 점 중 하나만 확인하기로 선택한 경우 삼각형에 대해 한 번, 삼각형에 대해 한 번만 찾은 직각 삼각형을 세어 볼 수 있습니다. 그것의 반영을 위해. 수표 수를 반으로 줄입니다. 또한, 지금 살펴보면, 두 점 사이의 거리를 찾기 위해 제곱근을 취하고 있습니다. 그러나 우리는 다시 그 점을 제곱합니다 isRightTriangle()
.
등등. 다시 말하지만, 그들은 일반적으로 완벽한 솔루션을 원치 않으며 솔루션에 어떻게 도달 하는지를 원합니다. 당신의 사고 과정은 위의 과정과 같을 필요는 없습니다. 단지 큰 소리로 생각할 수 있다는 확신은 많은 것을 의미합니다. 실수를하더라도 땀을 흘리지 마십시오. "음, 난 여기서 난 레일을 벗어난 것 같아요. 한 걸음 물러서겠습니다."