본문 바로가기

기하학21

[자바] 백준 30536 - 시루의 산책 (java) 목차 문제 : boj30536 필요 알고리즘 그래프 이론, bfs (너비 우선 탐색) 문제에서 제시된 데이터를 그래프로 생각하고, 적절한 방식으로 탐색해서 풀 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선.. 내 경우 맞왜틀을 많이 외친 문제였다 ㅠ. 그 이유는 아래와 같다. 1. 난 각 기둥의 상태가 'A. 다른 강아지 마킹 있음', 'B. 마킹은 없으나 다른 강아지 냄새가 영향을 끼침', 'C. .. 2023. 11. 28.
[자바] 백준 16491 - 대피소 찾기 (java) 목차 문제 : boj16491 필요 알고리즘 선분 교차 판정 선분 교차 판정만 할 줄 알면 풀 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 N이 10밖에 안되므로, 단순하게 모든 경우 O(N!)을 보면 된다! 즉, N개의 로봇에 N개의 대피소를 모두 배치해보면서 조건을 만족하는 경우가 생기면 출력하면 된다. 조건을 만족하는 경우는, 현재까지 선택된 모든 로봇-대피소 쌍에 대해 선분 교차 판정을 해보면 된.. 2023. 7. 24.
[자바] 백준 1688 - 지민이의 테러 (java) 목차 문제 : boj1688 필요 알고리즘 오목 다각형 내부의 점 판정 딱히 어려운 부분은 아니다. 선분 교차 판정의 응용으로, 풀이를 보면 어떻게 판정하는지 바로 알 수 있다. 기하학, CCW, 선분 교차 판정 CCW를 이용한 선분 교차 판정을 통해 오목 다각형 내부의 점을 판정하는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 CCW와 선분 교차 판정을 모르면 구현이 불가하다. 모른다면 이하 글을 참고해보.. 2023. 5. 12.
[자바] 백준 2162 - 선분 그룹 (java) 문제 : boj2162 필요 알고리즘 개념 분리 집합 그룹의 개수 및 그룹의 크기를 구하기 위해 분리 집합 알고리즘을 알고 있으면 좋다(안써서 푼 사람들도 있긴하다). 선분 교차 판정 (기하학, CCW) 선분 교차 판정 알고리즘으로 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 내 경우 union-find를 쓸 때, 코드상의 parents 배열 기준으로 그룹의 메인 번호는 음수, 나머지는 양수로 메인 번호를 나.. 2022. 11. 26.
[자바] 백준 12781 - PIZZA ALVOLOC (java) 문제 : boj12781 필요 알고리즘 개념 선분 교차 판정 (기하학, CCW) 선분 교차 판정 알고리즘으로 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 주어진 선분 2개로 피자가 4조각으로 나뉘는지 확인해보는건 결국 두 선분이 교차하는지 판단하면 된다. CCW를 이용한 선분 교차 여부 판정을 보고 구현해주면 된다. 주의점은 위 설명에서는 교차된 것으로 판단되는 이하와 같은 케이스들은 이 문제에서는 교차하지 .. 2022. 11. 26.
[C++] 백준 15687 - 직사각형 (cpp) 문제 : boj15687 필요 알고리즘 개념 기하학, 구현 기하학이라곤 해도 뭐 그냥 직사각형의 넓이나 둘레를 구하는 법을 아냐 정도이다. 그냥 제시된대로 구현하는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 백준에서 처음 보는 제출 방식이었다. 완성된 코드가 아니라 클래스만 짜서 올리면 된다. 다만 C++로만 제출이 가능하다. 넓이나 둘레 등은 따로 풀이할건 없을 것 같다. C++을 어느정도 안다면 풀 수 있다.. 2022. 11. 26.
[자바] 백준 17387 - 선분 교차 2 (java) 문제 : boj17387 필요 알고리즘 개념 선분 교차 판정 (기하학, CCW) 선분 교차 판정 알고리즘으로 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 CCW를 이용한 선분 교차 여부 판정을 보고 그대로 구현해주면 된다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringToken.. 2022. 11. 25.
[자바] 백준 17386 - 선분 교차 1 (java) 문제 : boj17386 필요 알고리즘 개념 선분 교차 판정 (기하학, CCW) 선분 교차 판정 알고리즘으로 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 CCW를 이용한 선분 교차 여부 판정을 보고 그대로 구현해주면 된다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringToken.. 2022. 11. 25.
[자바] 백준 6322 - 직각 삼각형의 두 변 (java) 문제 : boj6322 필요 알고리즘 개념 피타고라스의 정리, 기하학 피타고라스의 정리를 알면 풀 수 있다! 문제에서도 공식이 주어지니 사실상 구현문제라고 봐도 될 것 같다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 경우를 나눠보면 아래와 같다. 1. c가 -1일 경우 c^2 = a^2 + b^2 이므로, c = sqrt(a^2 + b^2) 이다(sqrt는 제곱근을 뜻한다.). a와 b는 항상 양수로 주어질 것이므로 불.. 2022. 11. 10.
[자바] 백준 2166 - 다각형의 면적 (java) 문제 : boj2166 필요 알고리즘 개념 기하학 신발끈 공식을 사용해 풀 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 솔브닥 그래프에 기하학이 폭-삭 상태인데, 왠지 동그란게 이쁠 것 같으니 기하학을 공부해보기로 했다. 이 문제는 기하학의 사칙연산이라 불리는 CCW를 다양한 블로그 보면서 공부하고 있던 중에 만난 신발끈 공식으로 풀 수 있는 문제였다. 이하 노션에 개인 공부용으로 정리중인 벡터의 외적 .. 2022. 11. 9.