[Finite Automata, computational geometry] 내부점 판별 (in_out)
프로그래밍/알고리즘2012. 1. 16. 21:45
출처 : www.dovelet.com <- 클릭
프로그램 명: in_out(open)
프로그램 명: in_out(open)
제한시간: 1 초
그림과 같이 사각형의 중심의 좌표가 주어지고 다른 한 점이 주어질 때 이 점이 사각형 내부의 점 인지 아닌지를 판별하는 문제이다.
입력
- 첫 줄에는 중심의 좌표와 중심에서 꼭지점 사이거리가
- 두 번째 줄에는 판별할 점의 좌표가 주어진다.
출력
내부의 점이면 yes , 아니면 no 를 출력한다.입출력 예
입력 2 2 3 -1 2 출력 yes 입력 2 2 3 -1 3 출력 no
math.h에 abs함수 즉, 절대값을 구하는 함수가 내장되어 있습니다.
하지만 dovelet에서는 gcc로 채점을 하기 때문에 채점되지 않기 때문에
abs함수를 직접 만들어서 사용하였습니다.
* 함수 설명
int abs( int x ) {
if ( x < 0 ) return x * -1; //만약 x가 0 보다 작다면(음수), x에 -1을 곱하여 리턴한다.
return x; // 전 if 문에서 걸리지 않으면 그대로 리턴한다. }
즉, 음수에다가 -1을 곱해주면 양수(자연수)가 된다.
ex) -1 * -1 = 1, -356 * -1 = 356
if문 밑에 else를 쓰나 않 쓰나 같기 때문에 저는 쓰지 않았습니다.
어차피 if문에 걸리면 함수에서 나가니까요.
나는 [질/답] 에 힌트를 올려주신 graciful님께 감사를 표한다.
[질/답]에 보면 마름보 방정식을 이용하면 더 쉽다는 graciful님의
글이 올라와 있다.
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[BOJ] 1007번. Vector Matching (0) | 2017.11.22 |
---|---|
프로그램 명: suffix_array(open) (0) | 2012.06.22 |
[더블릿] KnapSack (0) | 2012.01.06 |
[더블릿] 행오버 (0) | 2012.01.04 |
버스 (0) | 2012.01.03 |