이 퍼즐 풀 프로그램 만들 수 있는 능력자가 KLDP에 있을까요?

dryoo2009의 이미지

요즘 리눅스 잡지를 매달 꼬박꼬박 사다 보고 있는데 매달 퍼즐이 같이 나오네요.
수학 퍼즐이 주어지고, 그걸 풀 수 있는 코드를 보내주면 그중 몇 명을 뽑아서 천 루피(대략 삼만원)를 보내준다는데-
전 그 돈에는 욕심 없고, 재미로 물어보는 겁니다.
이번달 퍼즐 나갑니다.
만약 동그란 쿠키를 직선으로(미안합니다. 이 말을 빼먹었네요.) 열번 자르면 최고 몇 조각이 날까요?
단, 쿠키는 자르고 나서도 그 자리에 못박힌 듯 있다. 즉, 쿠키를 임의로 움직여서 자를 순 없다.
한 번 풀어보세요.
(만약 다른 문제를 풀고싶음 codechef.com 으로 가 보세요. 문제당 삼십만원이 넘게 걸린 것도 있네요.)

eseo의 이미지

이런식으로 짜는건지 모르겠네요.
shell script version

#!/bin/sh
out=1
for num in `seq $1`
do
	out=`echo "$num + $out" | bc`
done
echo $out

run 10
56

---
배려하는 마음을 갖자.

---
배려하는 마음을 갖자.

jg의 이미지

my $total_cut = $ARGV[0] || 10;
my $pieces = 1;
my $lines  = 0;
 
sub maximum_cross { $lines }
sub maximum_new_pieces { 1 + maximum_cross }
 
sub cut {
    $pieces += maximum_new_pieces;
    ++$lines;
}
 
warn "Invalid cutting count: $total_cut\n" and exit 1 if $total_cut < 0;
 
cut for ( 1..$total_cut );
print "Maximum pieces when the pie is cut $total_cut time(s): $pieces";  
 
exit 0;

약간의 풀이 과정도 적었습니다.. 수열로 나타낼 수 있는 문제라.. 한 줄 계산식으로도 끝낼 수 있겠지요..

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

unipro의 이미지

저의 계산으로는 최대 1535개 나오네요.

#!/usr/bin/perl
 
sub cut {
    if ($_[0] > 1) {
        return (cut($_[0] - 1) - 1) * 2 + 3;
    }
    else {
        return 2;
    }
}
 
print cut($ARGV[0]) . "\n"

----
내 블로그: http://unipro.tistory.com

내 블로그: http://unipro.tistory.com

unipro의 이미지

풀이 과정부터 틀렸네요.
곡선이면 말도 안되게 많이 나올 수 있겠네요.
----
내 블로그: http://unipro.tistory.com

내 블로그: http://unipro.tistory.com

JuEUS-U의 이미지

이 정도면 고등학교 수1 정도 수준이네요

oletree의 이미지

선을 그을때 이전선들을 모두 만나야 가장 많은 조각을 낼수 있다.
한점은 2선만이 만나야 한다.

즉 기존 그은 선과 점 의 갯수와 조각의 관계에 대한 연관식을 찾는다..

1 = 점 0 (신점 0), 면 2 (외부면 2, 내부면 0)
2 = 점 1 (신점 1), 면 4 (외부면 4, 내부면 0)
3 = 점 3 (신점 2), 면 7 (외부면 6, 내부면 1)
4 = 점 6 (신점 3), 면 11(외부면 8, 내부면 3)
5 = 점 10(신점 4), 면 16(외부면 10, 내부면 6)
6 = 점 15(신점 5), 면 22(외부면 12, 내부면 10)
7 = 점 21(신점 6), 면 29(외부면 14, 내부면 15)
.
.
.
선이 증가 할때 마다 다음과 같이 면이 증가한다.
외부 면수 = 2* 선수 n
내부 면수 = (선수n - 2)! (ㅠ.ㅠ 기호가 정확하게 기억이 안남)
즉 쿠크를 10번 쪼게어 만들수 있는수는 2*10 + 8!
2 * 10 + 9 * 8 / 2 = 56 개

계산 하고 나니 3이상에서 n! + 1 값이 나오네요.