728x90 기하학10 [python] 백준 20149 선분 교차 3 https://www.acmicpc.net/problem/20149 문제 해결선분이 겹치는지 안겹치는지 확인할 때는 CCW (Counter Clock Wise)를 사용한다.선분 1, 선분 2가 있으면 선분 1과 선분 2의 끝점 각각을 CCW를 사용했을 때 부호가 반대로 나오고 선분1의 두 끝점과 선분2를 CCW를 사용했을 때 부호가 반대로 나오면 무조건 두 선분은 만나게 된다.문제는 끝점이 교차할 때 CCW가 0이 나올 경우가 있는데 조건을 나누어 코드를 짜야한다.선분 1의 끝점 두개와 선분 2의 끝점을 보고 선분 1에서 x축 값이 큰 값 (x 같으면 y값)이 선분 1의 x축 값이 작은 값(x같으면 y값)보다 크고 선분 2의 작은값보다 크고 큰값보다 작으면 겹친다. (코드 참고...) CODEimpo.. 2024. 6. 16. [python] 백준 1064 평행사변형 https://www.acmicpc.net/problem/1064 1064번: 평행사변형 평행사변형은 평행한 두 변을 가진 사각형이다. 세 개의 서로 다른 점이 주어진다. A(xA,yA), B(xB,yB), C(xC,yC) 이때, 적절히 점 D를 찾아서 네 점으로 평행사변형을 만들면 된다. 이때, D가 여러 개 나 www.acmicpc.net 문제 해결 3 점이 주어졌고 어떻게 연결하느냐에 따라 평행사변형 모양이 달라질 수 있다. 점 a, b, c가 있다고 하면 abc 연결과 acb연결은 다르다 만약 점이 일직선으로 있다면 평행사변형을 만들 수 없다. 따라서 그 경우는 -1.0을 출력하고 나머지 경우는 여러가지 연결을 해보고 가장 짧은 선분 합과 가장 긴 선분 합 차를 구하고 2배를 해주면 된다. 주의할.. 2024. 2. 21. [python] 백준 2527 직사각형 https://www.acmicpc.net/problem/2527 2527번: 직사각형 4개의 줄로 이루어져 있다. 각 줄에는 8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직사 www.acmicpc.net 문제 해결 조건을 잘 분리해서 출력하는 문제 우선 겹치지 않는 경우부터 잡는 것이 좋다. 두 직사각형 각각의 x, y의 최소 값 좌표와 최댓 값 좌표가 있는데 어떤 직사각형의 최솟값 좌표가 다른 직사각형의 최댓값 좌표보다 큰 것이 존재하면 겹칠 수 없다.(x, y 둘 중 하나라도) 만약 어떤 직사각형의 최솟값 좌표가 다른 직사각형 최댓값 좌표와 같은 것이 존재한다면 겹쳐서 선이나 점이 만들어진다... 2024. 2. 15. [python] 백준 1069 집으로 https://www.acmicpc.net/problem/1069 1069번: 집으로 은진이는 지금 (X, Y)에 있고, (0, 0)에 있는 집으로 가능한 빨리 가려고 한다. 이동할 수 있는 방법은 다음 두 가지이다. 첫 번째 방법은 걷는것이다. 걸을 때는 1초에 1만큼 움직인다. 두 번째 방법 www.acmicpc.net 문제 해결 걸을 때 1초에 1만큼 움직인다. 이는 택시기하학으로 움직이는 것이 아니고 자유롭게 대각선이든 반경 1안에 모든 점으로 1초에 이동할 수 있다는 것이다. 점프도 마찬가지다. 일직선으로 할 수 있다는 뜻은 정확히 거리가 D인 지점까지 T초에 간다는 뜻이다. 따라서 현재 거리, 즉 (x,y)와 (0,0) 거리를 구한다. 현재 거리가 한 번에 뛰어서 갈 수 있는 거리보다 크거나 .. 2023. 12. 7. 이전 1 2 3 다음 728x90