Breaking

Sunday 20 August 2017

Shirt - Matching Pairs

                      Shirt - Matching Pairs


                                   

A shop to increase sales during a festival has an offer that a customer will get a discount if the customer buys shirts having same size in pairs. Any customer who buys will choose N shirts and the size of the shirt is denoted by S(i) where 1 <= i <=N. Two shirts S(i) and S(j) are matching and form a pair only if S(i) = S(j).
The program must print the number of pairs eligible for the discount.
Input Format:
The first line will contain the value of N
The second line will contain the the size of N shirts S(1) to S(N) with each size separated by a space.
Output Format:
The first line will contain the number of matching pairs eligible for the discount.
Constraints:
2 <= N <= 100
Example Input/Output 1:
Input:
9
10 20 20 10 10 30 44 10 20
Output:
3
Explanation:
The matching pairs are (10,10) (20,20) (10,10).

Example Input/Output 2:
Input:
6
42 44 40 42 44 42
Output:
2
Explanation:
The matching pairs are (42,42) (44,44)
Code:


import java.util.*;
public class Hello {

    public static void main(String[] args) {
                   Scanner sc=new Scanner(System.in);
                   List<Integer> li=new ArrayList<Integer>();
                   Set<Integer> set=new HashSet<Integer>();
                   int i,n=sc.nextInt();
                   int arr[]=new int[n];
                   for(i=0;i<n;i++)
                   {
                       arr[i]=sc.nextInt();
                       li.add(arr[i]);
                       set.add(arr[i]);
                   }
                   int freq,count=0;
                   for(int no:set)
                   {
                       freq=Collections.frequency(li,no);
                       if(freq%2==1)
                           --freq;
                          if(freq%2==0)
                           {
                               freq/=2;
                               count+=freq;
                           }
                   }
                   System.out.print(count);
          }
}

Please do comment If u have any Queries!

1 comment:

  1. /*Alternate code*/


    import java.util.*;
    public class MyClass {
    public static void main(String args[]) {
    Scanner sc=new Scanner(System.in);
    int n=sc.nextInt();
    HashMaphm=new HashMap();
    int count=0;
    //int arr[]=new int[n];
    for(int i=0;imap:hm.entrySet()){
    if(map.getValue()%2==0 || map.getValue()>=2){
    //System.out.println();
    count=count+map.getValue()/2;
    }
    }
    System.out.println(count);
    }
    }

    ReplyDelete

Like