In this HackerRank Concatenate an array with itself problem solution we have given a list of countries, each on a new line, your task is to read them into an array. Then, concatenate the array with itself (twice) - so that you have a total of three repetitions of the original array - and then display the entire concatenated array, with a space between each of the countries' names.

Input Format

A list of country names. The only characters present in the country names will be upper or lower-case characters and hyphens.

Output Format

Display the entire concatenated array, with a space between each of them.

HackerRank Concatenate an array with itself problem solution


Problem solution.

arr=($(cat)) 
printf "${arr[*]} ${arr[*]} ${arr[*]}"


Second solution.

while read country
do
    countries=("${countries[@]}" $country)
done
for i in `seq 1 3`
do
    echo -n "${countries[@]} "
done


Third solution.

#! /bin/bash

while read line
do
    array[${#array[@]}]=$line
done
echo "${array[@]} ${array[@]} ${array[@]}"


Fourth solution.

ARRAY=()
while read line; do
    ARRAY+=($line)
done;
RESULT=()
for i in `seq 0 ${#ARRAY[@]}`; do
    RESULT+=(${ARRAY[$i]})
done;
for i in `seq 0 ${#ARRAY[@]}`; do
    RESULT+=(${ARRAY[$i]})
done;
for i in `seq 0 ${#ARRAY[@]}`; do
    RESULT+=(${ARRAY[$i]})
done;
echo ${RESULT[@]}