Header Ad

HackerRank Awk - 3 problem solution

In this HackerRank Awk - 3 problem solution There are N integers in an array A. All but one integer occur in pairs. Your task is to find the number that occurs only once.

Input Format

The first line of the input contains an integer N, indicating the number of integers. The next line contains N space-separated integers that form the array A.

Constraints

1 <= N < 100

N % 2 = 1 (N is an odd number)

0 <= A[i] <= 100, relate to [1,N]

Output Format

Output S, the number that occurs only once.

Problem solution.

awk '{
if ((($2 + $3 + $4) / 3) >= 80)
    print $0,": A";
else if ((($2 + $3 + $4) / 3) >= 60)
    print $0,": B";
else
    print $0,": FAIL";
}'


Second solution.

awk '{split($line,a," "); 
    avg=0
    avg+=$2
    avg+=$3
    avg+=$4
    avg/=3
    #print avg
    if(avg >= 80){
      print $line" : A"
    } else if(avg >= 60){
       print $line" : B" 
    } else if(avg >= 50){
       print $line" : C" 
    } else{
       print $line" : FAIL" 
    }
    
}'


Third solution.

awk '{ 
total=$2+$3+$4; avg=total/3;
if ( avg >= 80 ) grade="A";
else if ( avg >= 60) grade ="B";
else if (avg >= 50) grade ="C";
else grade="FAIL";
print $1,$2,$3,$4" :",grade;
}'


Fourth solution.

awk '{
if((($2+$3+$4)/3)>=80)
    print $1,$2,$3,$4,": A";
else if((($2+$3+$4)/3)>=60)
    print $1,$2,$3,$4,": B";
else if((($2+$3+$4)/3)>=50)
    print $1,$2,$3,$4,": C";    
else
    print $1,$2,$3,$4,": FAIL";
}'


Post a Comment

0 Comments