작성일 : 11-07-11 22:40
기하 알고리즘 강좌 질문 있습니다.
 글쓴이 : 황희선(h2sjolly)
조회 : 9,036  

선생님께서 두 선분의 교차여부를 판단하기 위해서
점이 모두 오른쪽에 있거나, 왼쪽에 있으면 교차하지 않는다고 하셨는데..

그 예제 문제에서는 10개의 선분이 교차하는 가짓수를 구하는 것이었는데요,
만약 3 개의 선분이 한 점에서 만난다면, 이것은 어떻게 판단하나요?

역시 수학공식을 써야 되는건가요?

이런것도 쉽게 판별하는 방법이 있을까요?'

답변 부탁드립니다 ㅠㅠ;;


황희선 11-07-11 22:43
 
선생님, 그리고 조언 하나 부탁드립니다 ㅠㅠ;;

전 예전에는 배열에 수를 입력받을 때에 0부터 처리해서 어려움을 겪었는데,
이제는 그래서 1부터 처리합니다...;;

하지만 두 가지 경우 모두 헷갈릴 때가 많은데,
어느 경우가 낳을까요..?

또한, 병합정렬 알고리즘을 사용하다 보니, n log_2 n이라 해도 이상하게도 많은 데이타를 처리 할 때에는 제 컴퓨터로 2초가량 걸렸습니다.

역시 stdlib.h헤더파일에 있는
qsort를 이용하는 것이 좋겠죠?

조언 부탁드립니다.
고맙습니다.
컴스쿨 11-07-12 17:31
 
어떤 문제를 말씀하시는건지 모르겠지만 평면내 직선의 교점 문제라면 문제에 "만약 중복되는 교점이 생기는 경우 각각의 교점으로 인정하고" 라는 전제가 있습니다. 만약 a,b,c 3개의 선분이 한점에서 만난다면 a와b, a와c, b와c 이렇게 3개의 교점이 생기는 겁니다.

배열에 수를 입력받을때 0부터 받는것이 좋은지 1부터 받는것이 좋은지는 그야말로 작성자의 선택입니다.
일반적으로 0부터 받는것이 여러가지 다양한 수식을 이용해 처리하기가 용이하지만 입력받는 수 자체가 입출력의 번호로 이용이 되거나 다이나막에서 0번은 아무것도 없을때의 초기값으로 사용하거나 하는 등의 필요에 의해 1번부터 사용하는 것이 편리한 경우도 많기 때문에 문제의 성격과 문제를 해결하기 위해 사용할 알고리즘 등에 따라 문제별로 알맞은 방법을 선택하는 것이 좋을거라 생각합니다.

qsort를 사용할 것인지 병합정렬을 사용할 것인지 역시 그때그때 자신의 판단으로 결정해야 하며 사실 두 알고리즘의 복잡도가 거의 비슷하기 때문에 대부분의 문제에서 별로 큰 이슈가 되지 못할거라 보입니다.
자신의 컴퓨터로 2초가 나오는건 채점컴퓨터의 성능을 믿으시고 별로 신경쓰지 않으셔도 될거 같습니다.
 
 

Total 660
번호 제   목 글쓴이 날짜 조회
80 자기주도 C언어 프로그래밍 공동구매 이벤트 결제 (2) 이여진 04-26 7049
79 포인트요 (1) 오미옥 04-24 6639
78 정보올림피아드 지역본선대비 기출문제 풀이강좌요... (1) 엄사초 04-24 9321
77 정보올림피아드 1년 수강했는데요?? (2) 백지훈 04-24 8150
76 정보올림피아드 본선대비 전강좌 수강권 (1) 박승한 04-22 6770
75 2011년 예선 모의고사 (1) 백지훈 04-19 7937
74 정보올림피아드 본선대비 전강좌 수강권 (1) 박승한 04-18 6871
73 포인트 (1) 장경현 04-18 6603
72 자기주도 C언어??? (1) 이정민 04-16 6857
71 포인트 사용법 (1) 박승한 04-11 6823
70 2010년 9번 문제 백지훈 04-11 6705
69    2010년 9번 문제 컴스쿨 04-12 6683
68 2010년 중고등부예선 29번문제 오류 (1) 백지훈 04-05 6937
67 정보올림피아드 전 강좌 1년 수강권 (1) 이정민 04-02 6804
66 정보올림피아드 2011 중.고등부예선 기출문제풀이 (1) 김정희 03-31 7446
65 초등 정보올림피아드 기출문제풀이 full패키지 (1) 오미옥 03-07 9171
64 한글2010 무료강좌.... (1) 조영희 02-27 7240
63 강의신청했는데요 (1) 김연희 02-17 6897
62 강의신청했습니다. (1) 이준석 02-02 7068
61 이거 쫌 잘못된것 같은데요 (1) 이대열 01-20 6996
 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30    

회사소개 | 개인정보처리방침 | 이용약관 | 찾아오시는 길 | 이메일주소 무단수집거부 | 사업자정보확인
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호 한컴에듀케이션(주) TEL : 031-388-8840 FAX : 031-388-0996
대표자 : 김동규 사업자번호 : 130-86-02870 통신판매업신고번호 : 제 2010-경기안양-888호
COPYTIGHT(C) 한컴에듀케이션(주), ALL RIGHT RESERVED.
담은강좌 : 0