문제 42, 땅 나누기, How many Pieces of Land?, PC/UVa ID : 110602/10213, 인기도 : B, 성공률 : 보통, 레벨 : 2

이 포스트를 만든 목적

  • 생각 절차, 푼 방법, 고민거리 등을 기록하기 위해서 만들었다.

이 포스트의 준비물

  • Mozila Firefox 6.0
  • eclipse 3.6.1 + vrapper
  • java

참조 문헌

  • 스티븐 스키에나, 미구엘 레비야 저. Programming Challenges: 알고리즘 트레이닝 북. 서환수 역.
    Springer. 한빛미디어 초판 2쇄 2004.12.05. (문제 42, 땅 나누기, How many Pieces of Land?, p.173)

참조 링크

간략한 이야기/프로그램의 입출력

타원 모양의 땅이 주어졌고, 그 땅 테두리에 n개의 점이 지정한 뒤, 각 n개의 점을 서로 이었을 때, 최대 몇조각으로 땅이 분리 되는가? n개의 점이 주어였을 때, 선분의 갯수는 n(n-1)/2 개 이다. 다음은 n=6 일때, 땅이 나뉜 모습이다.

입력

  • 첫번째 라인에는 테스트 캐스으의 갯수가 입력되며, 0 < s < 3511 작은 정수 s가 입력된다.
  • 다음줄 부터는 0 <= n < 2^31 미만의 수가 입력되며, n 은 점의 갯수이다.

출력

  • 한줄에 하나의 결과만 출력한다.

맛보기 사진

맛보기 코드



여담

  • 선이 서로 출돌될 때, 조각 하나가 생기므로, 충돌 선의 갯수를 조사한 공식으로 만들었다.
  • 충돌 공식을 만들기 위해 원을 30개쯤 그렸다.

  • 충돌 공식은 각 점에 인덱스 0 ~ n - 1 를 부여하고, 0 ~ n - 1 개의 점을 일일이 선을 그으면서, 충돌될 선을 샌 것이다.

  • 충돌 갯수를 for 문으로 조사하기 때문에, 2^31 - 1 개의 점이 있을 때, 무척 느린 성능을 나타낸다.(결국 속도 개선을 위한 알고리즘 변경이 필요함)

:wq!

저작자 표시
신고

'책 정리 > Programming Challenges : 알고리즘 트래이닝 북' 카테고리의 다른 글

문제 44, 표현식, Expressions, PC/UVa ID : 110604/10157, 인기도 : C, 성공률 : 보통, 레벨 : 2  (0) 2015.02.04
문제 43, 셈, Counting, PC/UVa ID : 110603/10198, 인기도 : B, 성공률 : 높음, 레벨 : 2  (2) 2011.08.22
문제 42, 땅 나누기, How many Pieces of Land?, PC/UVa ID : 110602/10213, 인기도 : B, 성공률 : 보통, 레벨 : 2  (1) 2011.08.01
문제 41, 피보나치 수의 개수, How many Fibs?, PC/UVa ID : 110601/10183, 인기도 : B, 성공률 : 보통, 레벨 : 1  (0) 2011.07.29
문제 40, 모든 쌍의 합, Pairsumonious Numbers, PC/UVa ID : 110508/10202, 인기도 : B, 성공률 : 높음, 레벨 : 4  (0) 2011.07.27
문제 39, 스턴-브로콧 수체계, The Stern-Brocot Number System, PC/UVa ID : 110507/10077, 인기도 : C, 성공률 : 높음, 레벨 : 1  (0) 2011.07.03
문제 38, 다항식의 계수, Polynomial Coefficients, PC/UVa ID : 110506/10105, 인기도 : B, 성공률 : 높음, 레벨 : 1  (0) 2011.06.14
문제 37, 곱하기 게임, A Multiplication Game, PC/UVa ID : 110505/847, 인기도 : A, 성공률 : 높음, 레벨 : 3  (0) 2011.05.07
문제 36, 1의 개수, Ones, PC/UVa ID : 110504/10127, 인기도 : A, 성공률 : 높음, 레벨 : 2  (0) 2011.05.05
문제 35, 고고학자의 딜레마, The Archeologist's Dilemma, PC/UVa ID : 110503/701, 인기도 : A, 성공률 : 낮음, 레벨 : 1  (0) 2011.05.05
문제 34, 뒤집어서 더하기, Reverse and Add, PC/UVa ID : 110502/10018, 인기도 : A, 성공률 : 낮음, 레벨 : 1  (0) 2011.03.10
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요

  1. BYS 2011.08.02 15:42 신고  Addr  Edit/Del  Reply

    좋은 정보 감사합니다.