'Programming/algorithm'에 해당되는 글 5건

  1. 2009/02/26   UVa. 101 - The Blocks Problem 번역 (11)
  2. 2009/01/08   삼각형 넓이구하기 프로그래밍 - 헤론의 공식 (6)
  3. 2008/08/02   C 소수판단 알고리즘 (4)
원문링크

블록 문제 

배경 

과감히 생략.

문제 

로봇의 팔이 평평한 테이블에 있는 블럭을 명령어대로 움직이게 하는 문제.

처음엔 아래처럼 n개의 블록(0부터 n-1까지)들이 있고 $0 \leq i < n-1$의 범위 내에 모든 i에 대해 bi 와  bi+1은 인접해있다.

그림 :
 아름다운 초기의 블럭나라

로봇의 팔에 하사하는 명령어 :

*a와 b는 블럭번호.

  • move a onto b

    a와 b에 있는 블록들을 제자리에 돌려놓고 a블럭을 b블럭 위로 옮긴다.

  • move a over b

    a위에 있는 블록들을 제자리에 돌려놓고 b블럭이 있는 블럭 기둥의 꼭대기로 a를 옮긴다.

  • pile a onto b

    b위에 있는 블록들을 제자리에 돌려놓고 a블록 위에 있는 블록기둥( a를 포함하여)을 b위로 옮긴다. 옮길 때 블록의 순서는 유지한다.

  • pile a over b

    a블록 위에 있는 블록기둥( a를 포함하여)을 b가 있는 블록기둥위로 옮긴다. 옮길 때 블록의 순서는 유지한다.

  • quit

    종료.

a = b일 때나 a와 b가 같은 블록기둥에 있을 때는 잘못된 명령이므로 무시한다.

입력 

첫 줄은 블록나라의 블록 개수를 나타내는 n(0 < n < 25)이 입력된다.

두 번째 줄부터 한 줄에 하나의 명령어가 입력되며 quit명령어가 입력될 때 까지 실행한다.

잘못된 문법의 명령어는 없다.

출력 

블록나라의 최종모습을 출력한다. 

각 줄의 처음에는 블록기둥 위치의 번호 i ( $0 \leq i < n$, n은 블록의 개수)를 출력하고 바로 다음에 콜론(:)을 출력한다 . 

공백문자 하나를 출력한다.

블록이 있다면 공백문자로 구분하여 출력하고 없다면 출력하지 않는다.

줄 끝에는 공백이 있으면 안된다.

입력 예시 

10
move 9 onto 1
move 8 over 1
move 7 over 1
move 6 over 1
pile 8 over 6
pile 8 over 5
move 2 over 1
move 4 over 9
quit

출력 예시 

 0: 0
 1: 1 9 2 4
 2:
 3: 3
 4:
 5: 5 8 7 6
 6:
 7:
 8:
 9:


AC
저작자 표시 비영리 변경 금지

이 글이 유익하다면 (굽신굽신) ->

Trackback Address >> http://zfanta.com/trackback/442 관련글 쓰기

  1. Favicon of http://dlbo.tistory.com BlogIcon Lonewolf dlbo 2009/03/25 00:49  address  modify / delete  reply

    헛. 이건 저 귀찮아서 안풀고 있던 문제군요 ㅋㅋㅋㅋㅋ

  2. Favicon of http://joesbasement.com BlogIcon 에블린 2012/04/26 23:51  address  modify / delete  reply

    저를 속이고 있군요.

  3. Favicon of http://celtic.dynalias.com BlogIcon 안나 2012/05/05 13:13  address  modify / delete  reply

    그것을 살 여유가 없습니다.

  4. Favicon of http://tommy1967.homeftp.org BlogIcon 클레어 2012/05/08 20:22  address  modify / delete  reply

    저는 잘못한 것이 없습니다.

  5. Favicon of http://intothem.is-a-blogger.com BlogIcon 엘리자베스 2012/05/08 22:06  address  modify / delete  reply

    관심 없습니다.

  6. Favicon of http://nobody.dyndns-web.com BlogIcon 이자벨 2012/05/09 03:13  address  modify / delete  reply

    체크 아웃하고 싶습니다.

  7. Favicon of http://kick-me.here-for-more.info BlogIcon Kaitlyn 2012/05/09 07:30  address  modify / delete  reply

    저는 유대인 음식만 먹습니다.

  8. Favicon of http://nickydunko.dyndns-wiki.com BlogIcon 카일리 2012/05/11 03:11  address  modify / delete  reply

    체크 아웃하고 싶습니다.

  9. Favicon of http://beers.for-more.biz BlogIcon 줄리아 2012/05/11 09:02  address  modify / delete  reply

    저는 돼지고기를 먹지 않습니다.

  10. Favicon of http://quitefun.is-a-republican.com BlogIcon 엘라 2012/05/11 13:21  address  modify / delete  reply

    당신의 도움이 필요합니다.혼자 내버려 두십시오.


중학교에선 4,5,6의 세 변을 가진 삼각형넓이를 구할 땐

h2 = 42 - (6-x)2 = 52 - x2

16 - (36 - 12x + x2) = 25 - x2
16 - 36 + 12x = 25
x = 15/4

h2 = 52 - x2
h2 = 400/16 - 225/16 = 175/16
h = √175/4 = 5√7/4

넓이 = 6 x 5√7/4 x 1/2
넓이 = 15√7/4








이런 방법을 알려줍니다.. 삼각형을 2개의 직각삼각형으로 나누어서 계산하는 것이죠.
참 싫죠?


헤론의 공식

√{s(s-a)(s-b)(s-c)}

s = (a+b+c)/2
s = (4+5+6)/2 = 15/2

넓이 = √{(15/2)x(7/2)x(5/2)x(3/2)} = √(1575/16) = 15√7/4






참 쉽죠? s는 넓이가 아니라는거 조심하시고.





이 글이 유익하다면 (굽신굽신) ->

Trackback Address >> http://zfanta.com/trackback/430 관련글 쓰기

  1. Favicon of http://www.ideakeyword.com BlogIcon Mr.번뜩맨 2009/01/09 21:42  address  modify / delete  reply

    헐 머리속이 갑자기 뒤엉키는 ~소리가~!

  2. BlogIcon tk3829 2011/01/20 06:04  address  modify / delete  reply

    담아갑니다 좋은 정보에요^^

  3. Favicon of http://vol-au-vent.servegame.org BlogIcon 시에나색 2012/05/13 11:46  address  modify / delete  reply

    누구?

  4. Favicon of http://beavis.is-a-geek.org BlogIcon 노라 2012/05/15 06:45  address  modify / delete  reply

    좋습니다, 그것을 사겠습니다

  5. Favicon of http://snookie.mypets.ws BlogIcon Annabelle 2012/05/17 08:31  address  modify / delete  reply

    저는 유대인 음식만 먹습니다.

오랜만에 글 써보네요.
미안하지만 오늘 글은 모두 아는 소수 판단 알고리즘입니다. ㅈㅅㅈㅅㅈㅅ

소수 : 1과 자신 외에는 나누어 떨어지는 정수가 없는 양의 정수.

소수의 정의만 보면 2부터 n-1까지 나누어보아서 나누어지지 않으면 소수 나누어지면 소수가 아니라고 할 수 있습니다.



이 함수는 느리다. ㅡ,.ㅡ
소수를 판별할 때 n의 제곱근까지만 나누어 보면 된다고 한다.

16을 보면 16의 약수는 1*16, 2*8, 3*6, 4*4, 6*3, 8*2, 16*2 이렇게 앞 뒤가 서로 대칭된다.
그래서 제곱근을 구해주는 합수 sqrt(int)함수를 써보겠습니다.



 소수를 구하는 다른 알고리즘에는 에라토스의 체가 있습니다.
1부터 n까지의 소수를 구한다고 할 때 소수의 배수를 지워나가면서 남아있는 수를 구하는 알고리즘입니다.


다음부턴 열심히 쓸게요. 때리지 마요 제발

이 글이 유익하다면 (굽신굽신) ->

Trackback Address >> http://zfanta.com/trackback/397 관련글 쓰기

  1. Subject: 에라토스테네스의 체가 과연 빠르긴 빠르네

    Tracked from BLUEnLIVE's ZocKrWorld 2009/09/06 03:57  delete

    꼭 이런 짓을 하고싶을 때가 있다. 소수의 합을 구할 때 에라토스테네스의 체가 빠르다는 거 당연한데, 굳이 일일이 계산하는 거랑 비교해보고 싶었다. 왜 그런지 따윈 없고... 단지 있다면 얼마 전 모 블로그에 내가 쓴 답글이 신경쓰여서랄까나... 그래서 VS 2003.Net으로 만들어봤다. #include "stdafx.h" #include <memory.h> #include <math.h> #include <windows.h> #define PRI..

  1. Favicon of http://bluenlive.net BlogIcon bluenlive 2008/08/16 02:56  address  modify / delete  reply

    참고로, sqrt(n)까지 루프를 돌릴 때 홀수만 돌리면 됩니다.
    짝수는 어짜피 2x홀수이니까요.

    오랜만에 보니 반갑네요.

  2. Favicon of http://dizies2.tistory.com BlogIcon dizies 2008/09/10 19:11  address  modify / delete  reply

    아리스토테네스의 체에서 소수 i를 찾아서 i의 배수를 지울때 2i 부터 돌리는데 사실 i*i부터 돌려도 됩니다. 왜 그런지는 직접 해보시면..;;