logo

각 변의 중간점이 주어진 삼각형의 좌표를 찾습니다.

삼각형 변의 중간점인 세 개의 좌표(xy)가 주어졌습니다. 임무는 삼각형의 좌표를 찾는 것입니다. 

예:   

CSS 굵은 텍스트
Input : midx1 = 5 midy1 = 3 midx2 = 4 midy2 = 4 midx3 = 5 midy3 = 5 Output : x1 = 4 y1 = 2 x2 = 4 y2 = 6 x3 = 6 y3 = 4

각 변의 중점이 주어진 삼각형의 좌표' title=



Solution can be verified by the figure.

X 좌표와 Y 좌표를 별도로 풀어보겠습니다. 꼭짓점의 X 좌표는 x로 둡니다.1엑스2엑스3. 그러면 중간점의 X 좌표는 (x1+ 엑스2)/2(x2+ 엑스3)/2(x3+ 엑스1)/2. 이 3개 표현식의 합이 X 좌표의 합과 같다는 것을 관찰하세요. 이제 우리는 3개의 변수의 합과 모든 쌍의 합에 대한 3개의 표현식을 가지고 방정식을 풀어 좌표값을 알아냅니다. 
마찬가지로 Y 좌표를 구합니다.

배우 레카

다음은 이 접근 방식의 구현입니다.  

C++
// C++ program to find coordinate of the // triangle given midpoint of each side #include   #define N 3 using namespace std; // Return after solving the equations and // finding the vertices coordinate. vector<int> solve(int v[]) {  vector<int> res;  // Finding sum of all three coordinate.  int all3 = v[0] + v[1] + v[2];  // Solving the equation.  res.push_back(all3 - v[1]*2);  res.push_back(all3 - v[2]*2);  res.push_back(all3 - v[0]*2);  return res; } // Finds vertices of a triangles from given // middle vertices. void findVertex(int xmid[] int ymid[]) {  // Find X coordinates of vertices.  vector<int> V1 = solve(xmid);  // Find Y coordinates of vertices.  vector<int> V2 = solve(ymid);  // Output the solution.  for (int i = 0; i < 3; i++)  cout << V1[i] << ' '  << V2[i] <<endl; } // Driver code int main() {  int xmid[N] = { 5 4 5 };  int ymid[N] = { 3 4 5 };  findVertex(xmid ymid);  return 0; } 
Java
import java.util.Vector; // Java program to find coordinate of the  // triangle given midpoint of each side  class GFG { //static final int N = 3;  // Return after solving the equations and  // finding the vertices coordinate.   static Vector<Integer> solve(int v[]) {  Vector<Integer> res = new Vector<Integer>();  // Finding sum of all three coordinate.   int all3 = v[0] + v[1] + v[2];  // Solving the equation.   res.add(all3 - v[1] * 2);  res.add(all3 - v[2] * 2);  res.add(all3 - v[0] * 2);  return res;  } // Finds vertices of a triangles from given  // middle vertices.   static void findVertex(int xmid[] int ymid[]) {  // Find X coordinates of vertices.   Vector<Integer> V1 = solve(xmid);  // Find Y coordinates of vertices.   Vector<Integer> V2 = solve(ymid);  // Output the solution.   for (int i = 0; i < 3; i++) {  System.out.println(V1.get(i) + ' ' + V2.get(i));  }  } // Driver code   public static void main(String[] args) {  int xmid[] = {5 4 5};  int ymid[] = {3 4 5};  findVertex(xmid ymid);  } } // This code is contributed by // PrinciRaj1992 
Python3
# Python3 program to find coordinate of the # triangle given midpoint of each side N = 3 # Return after solving the equations and # finding the vertices coordinate. def solve(v): res = [] # Finding sum of all three coordinate. all3 = v[0] + v[1] + v[2] # Solving the equation. res.append(all3 - v[1] * 2) res.append(all3 - v[2] * 2) res.append(all3 - v[0] * 2) return res # Finds vertices of a triangles from given # middle vertices. def findVertex(xmid ymid): # Find X coordinates of vertices. V1 = solve(xmid) # Find Y coordinates of vertices. V2 = solve(ymid) # Output the solution. for i in range(0 3): print(V1[i] end=' ') print(V2[i]) # Driver code if __name__=='__main__': xmid = [5 4 5] ymid = [3 4 5] findVertex(xmid ymid) # This code is contributed by # Sanjit_Prasad 
C#
// C# program to find coordinate of the  // triangle given midpoint of each side  using System; using System.Collections; class GFG  {   //static final int N = 3;   // Return after solving the equations and   // finding the vertices coordinate.   static ArrayList solve(int []v)  {   ArrayList res = new ArrayList();   // Finding sum of all three coordinate.   int all3 = v[0] + v[1] + v[2];   // Solving the equation.   res.Add(all3 - v[1] * 2);   res.Add(all3 - v[2] * 2);   res.Add(all3 - v[0] * 2);   return res;   }   // Finds vertices of a triangles from given   // middle vertices.   static void findVertex(int []xmid int []ymid)  {   // Find X coordinates of vertices.   ArrayList V1 = solve(xmid);   // Find Y coordinates of vertices.   ArrayList V2 = solve(ymid);   // Output the solution.   for (int i = 0; i < 3; i++)  {   Console.WriteLine(V1[i] + ' ' + V2[i]);   }   }   // Driver code   public static void Main()   {   int []xmid = {5 4 5};   int []ymid = {3 4 5};   findVertex(xmid ymid);   }  }  // This code is contributed by mits 
PHP
 // PHP program to find coordinate of the  // triangle given midpoint of each side  $N = 3; // Return after solving the equations and  // finding the vertices coordinate.  function solve($v) { $res = array(); // Finding sum of all three coordinate.  $all3 = $v[0] + $v[1] + $v[2]; // Solving the equation.  array_push($res $all3 - $v[1] * 2); array_push($res $all3 - $v[2] * 2); array_push($res $all3 - $v[0] * 2); return $res; } // Finds vertices of a triangles from  // given middle vertices.  function findVertex($xmid $ymid) { // Find X coordinates of vertices.  $V1 = solve($xmid); // Find Y coordinates of vertices.  $V2 = solve($ymid); // Output the solution.  for ($i = 0; $i < 3; $i++) print($V1[$i] . ' ' . $V2[$i] . 'n'); } // Driver code  $xmid = array(5 4 5); $ymid = array(3 4 5); findVertex($xmid $ymid) // This code is contributed by mits ?> 
JavaScript
<script>  // JavaScript program to find coordinate of the  // triangle given midpoint of each side  // Return after solving the equations and  // finding the vertices coordinate.  function solve(v) {  var res = [];  // Finding sum of all three coordinate.  var all3 = v[0] + v[1] + v[2];  // Solving the equation.  res.push(all3 - v[1] * 2);  res.push(all3 - v[2] * 2);  res.push(all3 - v[0] * 2);  return res;  }  // Finds vertices of a triangles from given  // middle vertices.  function findVertex(xmid ymid) {  // Find X coordinates of vertices.  var V1 = solve(xmid);  // Find Y coordinates of vertices.  var V2 = solve(ymid);  // Output the solution.  for (var i = 0; i < 3; i++) {  document.write(V1[i] + ' ' + V2[i] + '  
'
); } } // Driver code var xmid = [5 4 5]; var ymid = [3 4 5]; findVertex(xmid ymid); </script>

산출:  

6 4 4 2 4 6

시간 복잡도: 오(1)

변경 열 추가 오라클

보조 공간 : O(1) 일정한 공간을 사용하기 때문에


 

퀴즈 만들기