Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

What's the answer to this puzzle? Most unique/golfed solution? (fun)

by blakew (Monk)
on Sep 22, 2011 at 20:57 UTC ( #927466=perlquestion: print w/replies, xml ) Need Help??

blakew has asked for the wisdom of the Perl Monks concerning the following question:

Bit of silliness.

1. What's the next line?

1 1 1 2 1 1 2 1 1 1 1 1 2 2 1

2. Write code to print each line in the pattern (it gets unwieldy).

If the 5th line was 3 1 1 2 passing an argument gives that solution-
my $anchor = @ARGV ? '' : '^'; printf "%d\n", $_ = '1'; do { my $new; my ( $n ) = /^(\d)/o; while ( $_ ) { my $c = 0; $c++ while s/$anchor\s?$n\s?//; $new .= "$c $n " if $c; ( $n ) = /^(\d)/o; } print $_ = $new; } until ( <STDIN> =~ /\S/ );

Replies are listed 'Best First'.
Re: What's the answer to this puzzle? Most unique/golfed solution? (fun)
by thundergnat (Deacon) on Sep 23, 2011 at 02:09 UTC

    Hmm. Golf eh? 88 strokes. First 99 19 values. Bleh. 99 takes too long.

    Works under linux, Swap double and single quotes for Windows.

             1         2         3         4         5         6         7         8         9
    123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
    
    perl -E'$_=1;while(++$t<19){say;my@a;push@a,length$1,$2 while/((\d)\2* +)/g;$_=join"",@a}'

    Update 79 75 73 strokes

             1         2         3         4         5         6         7         8
    12345678901234567890123456789012345678901234567890123456789012345678901234567890
    
    perl -E'for(0..19){say$_=$t//1;$t="";$t.=(length$1).$2 while/((.)\2*)/ +g}'
      thundergnat,

      This just trims a few characters from your approach, which I think is a very good one (I couldn't find an inherently better one).

      # 68 strokes perl -E'map{say$_=$t||1;$t="";$t.=(length$&).$1while/(.)\1*/g}0..19'

      s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/
Re: What's the answer to this puzzle? Most unique/golfed solution? (fun)
by AnomalousMonk (Chancellor) on Sep 23, 2011 at 01:00 UTC
Re: What's the answer to this puzzle? Most unique/golfed solution? (fun)
by Anonymous Monk on Sep 24, 2011 at 04:06 UTC

    55 characters:

    perl -E'$_=1;say,s/(.)\1*/$&=~y...c.$1/ge while$i++<19'

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://927466]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (9)
As of 2019-06-18 12:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Is there a future for codeless software?



    Results (81 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!