본문 바로가기

기하학

(28)
[Python] 9918번 Cube / 2642번 전개도 https://www.acmicpc.net/problem/9918 9918번: Cube Folding six squares connected in some special ways can form a cube. For example, in the diagram below, the six squares on the left can be folded into a cube (with face 1 opposite face 4, face 2 opposite face 6, and face 3 opposite face 5) but the six squ www.acmicpc.net https://www.acmicpc.net/problem/2642 2642번: 전개도 입력은 여섯 줄로 되어 있으며 각 줄에는 0에서 6까지..
[Python] 4349번 Blocks https://www.acmicpc.net/problem/4349 4349번: Blocks Donald wishes to send a gift to his new nephew, Fooey. Donald is a bit of a traditionalist, so he has chosen to send a set of N classic baby blocks. Each block is a cube, 1 inch by 1 inch by 1 inch. Donald wants to stack the blocks together into a rectangu www.acmicpc.net 22/09/24 브론즈 문제 치고는 살짝 당황하게 만드는 난이도를 가진 문제로, 애를 살짝 먹었다. 개인적으로는 브론즈 2가 아니라 ..
[Python] 10255번 교차점 https://www.acmicpc.net/problem/10255 10255번: 교차점 이제 사각형의 경계선과 선분의 교차점에 관한 간단한 기하 문제를 풀어볼 것이다. 매우 다행히도 사각형은 항상 축에 평행한 형태로만 놓여 있다. 어떤 사각형과 어떤 선분의 교차점은 항상 0 www.acmicpc.net 22/09/22 선분 교차 알고리즘을 조금 응용한 문제로, 약간의 아이디어가 있어야하는 문제이다. 문제 접근 방식: 무작정 선분 교차 알고리즘을 4번 적용하여 문제를 풀어버리면 조금 난감하다. 왜냐하면, 모서리에만 선이 닿는다고 했을 때, 실제로는 선분과 직사각형이 한 점에서만 만나지만, 선분 교차 알고리즘이 만나는 모서리를 포함하는 두 직선에 대해서 모두 실행되기 때문에 두 점에서 만나는 것으로 오해 ..
[Python] 20149번 선분 교차 3 (추후 보강 예정) https://www.acmicpc.net/problem/20149 20149번: 선분 교차 3 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. www.acmicpc.net 22/09/22 선분 교차 2 문제를 풀었다면 거기에 교점을 구하는 코드를 추가로 집어넣음으로써 문제를 풀 수 있다. 문제 접근 방식: 이 문제를 풀기 전에 선분 교차 2 문제를 풀기를 권장한다. 먼저 CCW알고리즘과 이를 응용한 선분 교차 알고리즘을 이해하고 있다는 가정 하에서 서술하겠다. 선분 교차 알고리즘에 관한 글을 추후에 작성한다면 여기에 글을 덧붙일 예정이다. 어떤 선분이 교차하는지 교차하지 않는지 판단을 했다면, 그 교점을 구해야 한다. 그러면..
[Python] 3108번 로고 https://www.acmicpc.net/problem/3108 3108번: 로고 로고는 주로 교육용에 쓰이는 프로그래밍 언어이다. 로고의 가장 큰 특징은 거북이 로봇인데, 사용자는 이 거북이 로봇을 움직이는 명령을 입력해 화면에 도형을 그릴 수 있다. 거북이는 위치와 www.acmicpc.net 22/09/22 유니온-파인드(분리 집합)와 두 직사각형이 만나는 함수를 섞으면 쉽게 풀 수 있는 문제이다. 유니온-파인드의 기본 난이도가 골드 5인데, 이 문제에서 유니온-파인드를 사용해야 된다는 점을 캐치하는 것, 그리고 두 직사각형이 만나는 함수를 구현하는 난이도, 그리고 약간의 예외처리를 고려하자면 저 난이도는 굉장히 적절한 난이도라고 생각한다. 문제 접근 방식: PU명령은 펜을 떼라는 명령이다. 이 ..
[Python] 10216번 Count Circle Groups https://www.acmicpc.net/problem/10216 10216번: Count Circle Groups 백준이는 국방의 의무를 수행하기 위해 떠났다. 혹독한 훈련을 무사히 마치고 나서, 정말 잘 생겼고 코딩도 잘하는 백준은 그 특기를 살려 적군의 진영을 수학적으로 분석하는 일을 맡게 되었 www.acmicpc.net 22/09/20 전형적인 분리 집합 문제로, 분리 집합에 대한 내용만 잘 알고 있다면 쉽게 풀 수 있는 문제이다. 만약 분리집합을 모른다면 조금 푸는데 힘들 것이다. 문제 접근 방식: 문제에서는 통신영역이 서로 닿거나 겹치면 통신이 가능하다고 보는데, 여러 다리를 거쳐서 통신이 되는 것도 통신이 가능하다고 간주하였다. 때문에 이 정보를 보고 바로 분리 집합에 관련된 문제이겠구나..
[Python] 1711번 직각삼각형 1711번: 직각삼각형 (acmicpc.net) 1711번: 직각삼각형 첫째 줄에 점의 개수 N(3 ≤ N ≤ 1,500)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 점의 x좌표와 y좌표가 빈 칸을 사이에 두고 주어진다. 좌표값은 절댓값이 1,000,000,000을 넘지 않는 정수이며, 주 www.acmicpc.net 22/09/08 그룹 연습에서 풀다가 실패했던 문제로, 다시 풀어서 맞았습니다! 를 받은 문제이다. 단순한 브루트 포스이지만, 맞왜틀을 많이 당한 문제로, 지금 다시 보니 for문과 combinations의 차이점을 느낄 수 있었던 문제였던 것 같다. 문제 접근 방식: 단순 무식하게 그냥 세 점을 잡아서, 세 점의 길이 중 가장 긴 변의 제곱이 나머지 두 변의 길이의 제곱의 합과 같은지..
[Python] 2022번 사다리 2022번: 사다리 (acmicpc.net) 2022번: 사다리 첫째 줄에 차례대로 x, y, c에 해당하는 양의 실수 세 개가 입력된다. 수는 소수점 여섯째 자리까지 주어질 수 있으며, 3,000,000,000보다 작거나 같다. www.acmicpc.net 22/09/02 은근히 어려웠던 문제이다. 요즘 태그를 보지 않고 문제를 푸는데, 이분 탐색을 활용하는 문제가 아니라 온전히 답안이 나오는 문제인 줄 알고 식 정리에만 시간을 온전히 쏟았다. 알고 보니 명확한 식으로 나오지 않는 문제임을 알고서 이분 탐색을 활용하여 문제를 풀었다. 식 정리가 제일 어려운 문제이다. 문제 접근 방식: 그냥 식 정리를 한 뒤에 이분 탐색으로 문제를 풀면 된다. 이 식 정리가 좀 어렵긴 하지만, 사진으로 나와있으니 참고하..