# The Weekly Challenge - 251 (January 8th 2024)

## Task #1: Concatenation Value

You are given an array of integers, `@ints`

. Write a script to find the concatenation value of the given array.

The concatenation of two numbers is the number formed by concatenating their numerals.

**Example 1**

For example, the concatenation of 10, 21 is 1021.

**Example 2**

Input: @ints = (6, 12, 25, 1) Output: 1286

“6”.”1″ + “12”.”25″

**Example 3**

Input: @ints = (1, 2, 10) Output: 112

“1”.”10″ + “2”

## Solution

This is straight forward we take first and last concatenate and add to a running total:

Notes:

`pop`

and`shift`

without a parameter work on`@_`

so we don’t need to specify it.- In the odd length array the
`shift.pop`

works as`shift`

returns the value in the list and`pop`

an empty string.

#### 251-1-concatenation-value.pl - perl

`sub concatenation_value {`

my $t = 0;

$t += shift.pop while @_;

$t

}

## Task #2: Lucky Numbers

You are given a m x n matrix of distinct numbers.

Write a script to return the lucky number, if there is one, or -1 if not.

**Example 1**

[ [ 3, 7, 8], [ 9, 11, 13], [15, 16, 17] ]; Output: 15

First column, last row

**Example 2**

[ [ 1, 10, 4, 2], [ 9, 3, 8, 7], [15, 16, 17, 12] ]; Output: 12

**Example 3**

[ [7 ,8], [1 ,2] ]; Output: 7

**Example 4**

[ [ 4, 2 ] [ 2, 4 ] ] Output: -1

No value matches criteria

## Solution

This assumes nothing {can simplify a bit if you make assumptions about solutions} but this is still O(n.m)

#### 251-2-lucky-number.pl - perl

`sub lucky_number {`

my(@m,@l) = map {

my $min = $_->[0];

( $min>$_ ) && ( $min=$_ ) for @{$_};

[ map { ($_ == $min) ? 1 : 0 } @{$_} ]

} my @d = map { [@{$_}] } @_;

while(@{$d[0]}){

my @t = map { shift @{$_} } @m;

my @c = map { shift @{$_} } @d;

my $max = $c[0];

( $max<$_ ) && ( $max=$_ ) for @c;

push @l, grep { shift @t && $_==$max } @c;

}

@l ? @l : -1

}

## About The Weekly Challenge

The weekly challenge was set up Mohammad Anwar approximately 5 years ago - each Monday two problems are set for the "team" to solve.

These are posted at: