diff options
| author | Kang-min Liu <gugod@gugod.org> | 2020-09-28 23:59:32 +0900 |
|---|---|---|
| committer | Kang-min Liu <gugod@gugod.org> | 2020-09-28 23:59:32 +0900 |
| commit | 10c36422e9166389bfb25e96f27922e0accbecb4 (patch) | |
| tree | aafe9dbedca9bc92bec3b9868559114049b76d26 /challenge-080 | |
| parent | aa14cbf8342e04b936f40bcc720a23a258137ecd (diff) | |
| download | perlweeklychallenge-club-10c36422e9166389bfb25e96f27922e0accbecb4.tar.gz perlweeklychallenge-club-10c36422e9166389bfb25e96f27922e0accbecb4.tar.bz2 perlweeklychallenge-club-10c36422e9166389bfb25e96f27922e0accbecb4.zip | |
solutions of PWC 080 from gugod in Perl, Raku, and Kotlin.
Diffstat (limited to 'challenge-080')
| -rwxr-xr-x | challenge-080/gugod/kotlin/ch-1.kts | 14 | ||||
| -rw-r--r-- | challenge-080/gugod/kotlin/ch-2.kts | 12 | ||||
| -rw-r--r-- | challenge-080/gugod/perl/ch-1.pl | 20 | ||||
| -rw-r--r-- | challenge-080/gugod/perl/ch-2.pl | 15 | ||||
| -rw-r--r-- | challenge-080/gugod/raku/ch-1.raku | 9 | ||||
| -rw-r--r-- | challenge-080/gugod/raku/ch-2.raku | 11 |
6 files changed, 81 insertions, 0 deletions
diff --git a/challenge-080/gugod/kotlin/ch-1.kts b/challenge-080/gugod/kotlin/ch-1.kts new file mode 100755 index 0000000000..3d645acfb2 --- /dev/null +++ b/challenge-080/gugod/kotlin/ch-1.kts @@ -0,0 +1,14 @@ +#!/usr/bin/env kotlinc -script + +// Usage: +// kotlinc -script ./challenge-080/gugod/kotlin/ch-1.kts -- 1 2 18 4 5 +// 3 +// +// ./ch-1.kts -- 7 1 2 -3 3 4 50 '-1' '-2' +// 5 + + +val N = args.map({ it.toIntOrNull() }).filter({ it != null }); +val seen = N.toSet(); +val x = (1..N.size+1).first({ ! seen.contains(it) }); +println(x); diff --git a/challenge-080/gugod/kotlin/ch-2.kts b/challenge-080/gugod/kotlin/ch-2.kts new file mode 100644 index 0000000000..7c5af14b2b --- /dev/null +++ b/challenge-080/gugod/kotlin/ch-2.kts @@ -0,0 +1,12 @@ +#!/usr/bin/env kotlinc -script + +// Usage: +// +// # kotlinc -script ./challenge-080/gugod/kotlin/ch-2.kts 1 4 3 2 +// 7 + +val N = args.map({ it.toIntOrNull() }).filter({ it != null }); + +val extra = (1..N.lastIndex).filter({ N[it] != N[it-1] }).size; + +println( N.size + extra ); diff --git a/challenge-080/gugod/perl/ch-1.pl b/challenge-080/gugod/perl/ch-1.pl new file mode 100644 index 0000000000..fcc13cd0c2 --- /dev/null +++ b/challenge-080/gugod/perl/ch-1.pl @@ -0,0 +1,20 @@ +#!/usr/bin/env perl +use v5.28; + +=head1 Usage + + # perl ./challenge-080/gugod/perl/ch-1.pl 5 2 -2 0 + 1 + + # perl ./challenge-080/gugod/perl/ch-1.pl 5 2 -2 0 1 + 3 + +=cut + +my @N = grep { $_ > 0 } map { int($_) } @ARGV; + +my %seen = map { $_ => 1 } @N; +my $i = 1; +$i++ while $seen{$i}; + +say $i; diff --git a/challenge-080/gugod/perl/ch-2.pl b/challenge-080/gugod/perl/ch-2.pl new file mode 100644 index 0000000000..61f0e90073 --- /dev/null +++ b/challenge-080/gugod/perl/ch-2.pl @@ -0,0 +1,15 @@ +#!/usr/bin/env perl +use v5.28; + +=head1 Usage + + # perl ./challenge-080/gugod/perl/ch-2.pl 1 4 3 2 + 7 + +=cut + +my @N = grep { $_ > 0 } map { int($_) } @ARGV; + +my @extra = grep { @N[$_] != @N[$_-1] } (1..@N-1); + +say @N + @extra; diff --git a/challenge-080/gugod/raku/ch-1.raku b/challenge-080/gugod/raku/ch-1.raku new file mode 100644 index 0000000000..598aaca113 --- /dev/null +++ b/challenge-080/gugod/raku/ch-1.raku @@ -0,0 +1,9 @@ +#!/usr/bin/env raku + +# Usage: +# raku ./challenge-080/gugod/raku/ch-1.raku 1 2 18 4 5 +# 3 + +my $N = @*ARGS.map({ .Int }).Set(); + +(1..*).first(-> $n { ! $N{$n} }).say; diff --git a/challenge-080/gugod/raku/ch-2.raku b/challenge-080/gugod/raku/ch-2.raku new file mode 100644 index 0000000000..5afbd6afd1 --- /dev/null +++ b/challenge-080/gugod/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku + +# Usage: +# raku ./challenge-080/gugod/raku/ch-2.raku 1 4 3 2 +# 7 + +my @N = @*ARGS.map({ .Int }); + +my $extra = (1..@N.end).grep(-> $i { @N[$i] != @N[$i-1] }).elems; + +say @N.elems + $extra; |
