HackerRank Coding Question for Placements 2

We are given an array with n elements from {1,2,3,4}. Find the number of minimum changes required to be performed so that no two adjacent numbers are same?

Please write the code in the comments? We will add them here.

12 comments on “HackerRank Coding Question for Placements 2”


  • Abhishek

    #python_solution for this question
    n = int(input())
    a = []
    c = 0
    for i in range(n):
    b = int(input())
    a.append(b)

    print(a)

    for i in range(n-1):
    if a[i] == a[i+1]:
    c = c+1

    print(“The number of time they have to be changed “, c)


  • Avradeep

    For an array with elements 0 & 1 only, program to find required number of steps so that no adjacent elements are same –
    #include
    #include
    using namespace std;

    //ALL RIGHT

    void replace(int *digit){
    if(*digit==1){
    *digit=0;
    }
    else{
    *digit=1;
    }

    }

    bool chk_bin(int arr[], int size){
    bool flag = true;
    for(int i=0;i<size;i++){
    if(arr[i]!=1 && arr[i]!=0){
    cout<<"not binary"<<endl;
    flag = false;
    }
    }

    return flag;
    }

    int conversions(int arr[], int size){
    int c = 0;
    for(int i=0;i<size;i++){
    /*for(int j=i+1;j<size;j++){
    if(arr[i]==arr[j]){
    replace(&arr[j]);
    c++;
    }
    }*/

    if(arr[i]==arr[i+1]){
    replace(&arr[i+1]);
    c++;
    }

    }
    return c;

    }

    int main(){

    // keep this function call here
    int A[] = {1, 0, 0, 1, 0, 0, 1, 0};

    int arrLength = sizeof(A) / sizeof(*A);
    /*for(int i=0;i<arrLength;i++){
    replace(&A[i]);
    cout<<A[i]<<" ";
    }
    cout<<endl;*/
    if(chk_bin(A, arrLength)){
    cout<<"Binary "<<endl;
    cout<<conversions(A, arrLength)<<endl;
    }
    else{
    cout<<"Not binary";
    };

    //cout<<"Size of array : "<<arrLength<<endl;

    return 0;
    }


  • moviemaker

    //java Lanaguage
    public int minumn_chances(int a[])
    {
    int counter=0;
    for(int j=0;j<a.length-1;i++)
    {
    if(a[i]!=a[i+1])
    counter+=1;

    }
    return counter;

    }


  • koduru

    import random
    n=int(input())
    c=0
    l=[]
    for i in range(n):
    l.append(random.randint(1,4))
    print(l)
    for i in range(len(l)-1):
    if l[i]!=l[i+1]:
    c+=1
    print(c)


  • Mansi

    #include
    using namespace std;
    int main(){
    int arr[100];
    int n,i;
    cout<>n;
    cout<<"enter array values";
    for( i=0;i> arr[i];
    }
    int c=0;
    for(i=0;i<n-1;i++){
    if(arr[i]==arr[i+1]){
    c++;
    i++;
    }
    }
    cout<<c;
    return 0;
    }


  • Ritik

    Here is the solution :-
    #include
    using namespace std;
    int main() {
    int arr[100];
    int n,c=0;
    cin>>n;
    for(int i=0;i>arr[i];
    }
    for(int i=0;i<n;i++)
    {
    if(arr[i] == arr[i+1])
    {
    continue;
    }
    else{
    c++;
    }
    }
    cout<<c-1;

    }


  • Niraj

    import random
    n=int(input(“Enter number “))
    a=[1,2,3,4]
    arr=[]
    for i in range(n):
    x=random.choice(a)
    arr.append(x)
    print(arr)
    y=[]
    check=0
    for i in range(1,n-1):
    a=[1,2,3,4]
    if arr[i-1]==arr[i] or arr[i+1]==arr[i]:
    check+=1
    a.remove(arr[i-1])
    a.remove(arr[i])
    y=a
    c=random.choice(y)
    arr[i]=c

    print(arr)
    print(check)


  • abhishek

    #include
    #include
    # define MAX_SIZE 100
    int main()
    {
    int a[MAX_SIZE];
    int s,i,j,k;
    printf(“enter the size of an array”);
    scanf(“%d”,&s);
    for(i=0;i<s;i++)
    {
    scanf("%d",&a[i]);
    }
    printf("the elements are\n");
    for(i=0;i<s;i++)
    {
    printf("%d\n",a[i]);
    }
    for(i=0;i<s;i++)
    for(j=i+1;j<s;j++)
    {for(k=j+1;k<s;k++)
    if(a[i]==a[j]){
    int temp=a[i+1];
    a[i+1]=a[k];
    a[k]=temp;
    }
    }
    for(i=0;i<s;i++){
    printf("%d\n",a[i]);}
    }


  • shashiraja shastry

    the number of changes required is n, i.e. segregate the array into even and odd numbers. To do that we have to parse array once.


  • Prashanth

    #include
    using namespace std;
    int main()
    {
    int n,count=0;
    cin>>n;
    int a[n];
    for(int i=0;i>a[i];
    int i=0;
    while(i<n-1)
    {
    if(a[i]==a[i+1]){
    count++;
    i=i+2;
    }
    else
    i++;
    }
    cout<<count;
    }