기하학19 [자바] 백준 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. [자바] 백준 20353 - Atrium (java) 문제 : boj20353 필요 알고리즘 개념 기하학, 수학 정사각형의 넓이를 어떻게 구하는지 알고 있다면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 정사각형의 넓이는 한 변의 길이의 제곱으로 구할 수 있다. 한 변의 길이를 x라 한다면 넓이는 x^2이다. 이 문제에서는 넓이가 주어지고, 원하는건 4x 이다. 따라서 '4*sqrt(입력으로 주어진 넓이)'을 출력해주면 된다. 자바에서 제곱근은 Math.sqrt.. 2022. 10. 10. [코틀린, 자바] 백준 9723 - Right Triangle (boj kotlin java) 문제 : boj9723 코틀린이랑 자바랑 둘 다 짜는 이유는 우선 코틀린으로 짜보고 -> 자바로 짠 후에 -> 자바를 코틀린으로 변경해서 쓸만한거 줍줍하기 위해서이다. 코틀린 익히기에 상당히 괜찮은 것 같다. 아무튼 문제는 직각 삼각형을 찾으면 된다. 즉, 3개의 변을 입력으로 받은 후에 가장 긴 변의 제곱이 나머지 두 변의 제곱의 합이 되는지 확인하면 된다. 그렇게 된다면 YES, 그렇지 않다면 NO를 출력해주면 된다. 코드(kotlin) : github import java.io.BufferedReader import java.io.InputStreamReader import java.util.* fun main() = with(BufferedReader(InputStreamReader(System... 2022. 7. 18. 이전 1 2 다음