diff options
| author | Stephen Lynn <bizlsg@localhost.localdomain> | 2024-02-26 07:25:11 +0800 |
|---|---|---|
| committer | Stephen Lynn <bizlsg@localhost.localdomain> | 2024-02-26 07:25:11 +0800 |
| commit | 431f6b3267d83f16055848c2d45cbddb3509bfd3 (patch) | |
| tree | 269d77744473cd7e008aa1cdbac33c92a9717abf | |
| parent | 971ad418c9418efd9eb105cd114387f5ce59d6be (diff) | |
| download | perlweeklychallenge-club-431f6b3267d83f16055848c2d45cbddb3509bfd3.tar.gz perlweeklychallenge-club-431f6b3267d83f16055848c2d45cbddb3509bfd3.tar.bz2 perlweeklychallenge-club-431f6b3267d83f16055848c2d45cbddb3509bfd3.zip | |
ch-1 only no blog
| -rw-r--r-- | challenge-257/steve-g-lynn/perl/ch-1.pl | 27 | ||||
| -rw-r--r-- | challenge-257/steve-g-lynn/python/ch-1.py | 22 |
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-257/steve-g-lynn/perl/ch-1.pl b/challenge-257/steve-g-lynn/perl/ch-1.pl new file mode 100644 index 0000000000..d8fe44828c --- /dev/null +++ b/challenge-257/steve-g-lynn/perl/ch-1.pl @@ -0,0 +1,27 @@ +# Perl 4.019 on DOSBOX
+
+sub smaller_than_current {
+ local(@ints)=@_;
+ local(@ranks)=(sort {$ints[$a]<=>$ints[$b];} 0..$#ints);
+ local($i,@retval);
+
+ $retval[$ranks[0]]=0;
+ foreach $i (1 .. $#ranks){
+ if ($ints[$ranks[$i]]==$ints[$ranks[$i-1]]) {
+ $retval[$ranks[$i]]=$retval[$ranks[$i-1]];
+ }
+ else {
+ $retval[$ranks[$i]]=$i;
+ }
+ }
+ @retval;
+}
+
+sub arr_print {
+ print "@_\n";
+}
+
+&arr_print( &smaller_than_current(5,2,1,6) ); # 2 1 0 3
+&arr_print( &smaller_than_current(1,2,0,3) ); # 1 2 0 3
+&arr_print( &smaller_than_current(0,1) ); # 0 1
+&arr_print( &smaller_than_current(9,4,9,2) ); # 2 1 2 0
diff --git a/challenge-257/steve-g-lynn/python/ch-1.py b/challenge-257/steve-g-lynn/python/ch-1.py new file mode 100644 index 0000000000..49d2196a1f --- /dev/null +++ b/challenge-257/steve-g-lynn/python/ch-1.py @@ -0,0 +1,22 @@ +# Python 1.4 beta on DOSBOX
+
+def smaller_than_current( intuple ):
+ ranks=[]
+ for i in range(len(intuple)):
+ ranks.append((intuple[i],i))
+ ranks.sort()
+ ranks=map(lambda x:x[1], ranks)
+ retval=[None]*len(intuple)
+ retval[ranks[0]]=0
+ for i in range(1,len(ranks)):
+ if intuple[ranks[i]]==intuple[ranks[i-1]]:
+ retval[ranks[i]]=retval[ranks[i-1]]
+ else:
+ retval[ranks[i]]=i
+ return retval
+
+
+print smaller_than_current( (5,2,1,6) ) # (2,1,0,3)
+print smaller_than_current( (1,2,0,3) ) # (1,2,0,3)
+print smaller_than_current( (0,1) ) # (0,1)
+print smaller_than_current( (9,4,9,2) ) # (2,1,2,0)
|
