Skip to content
Programmingoneonone
Programmingoneonone

LEARN EVERYTHING ABOUT PROGRAMMING

  • Home
  • CS Subjects
    • IoT ? Internet of Things
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programmingoneonone

LEARN EVERYTHING ABOUT PROGRAMMING

HackerRank Luck Balance problem solution

YASH PAL, 31 July 202410 September 2024

In this HackerRank Luck Balance interview preparation kit problem you need to complete the luckBalance function in the editor.

HackerRank Luck Balance Interview preparation kit solution

Topics we are covering

Toggle
  • Problem solution in Python programming.
  • Problem solution in Java Programming.
    • Problem solution in C++ programming.
    • Problem solution in C programming.
    • Problem solution in JavaScript programming.

Problem solution in Python programming.

N, K = map(int, input().strip().split())

luck = 0
important = []

for i in range(N):
    L, T = list(map(int, input().strip().split()))
    if T == 0:
        luck += L
    else:
        important.append(L)
        
for i in sorted(important, reverse=True):
    if K > 0:
        luck += i
        K -= 1
    else:
        luck -= i

print(luck)

Problem solution in Java Programming.

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    // Complete the luckBalance function below.
   static int luckBalance(int k, int[][] c) {
        PriorityQueue<Integer> imp = new PriorityQueue<>(Collections.reverseOrder());
        int luck = 0;
        for(int row = 0; row < c.length; row++){
            if(c[row][1] == 0) luck += c[row][0]; else imp.offer(c[row][0]);
        }
        boolean decreaseLuck = false;
        while(!imp.isEmpty()){
            if(k == 0) decreaseLuck = true;
            if(decreaseLuck == true) luck -= imp.poll(); else luck += imp.poll();
            k--;
        }return luck;   
    }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        String[] nk = scanner.nextLine().split(" ");

        int n = Integer.parseInt(nk[0]);

        int k = Integer.parseInt(nk[1]);

        int[][] contests = new int[n][2];

        for (int i = 0; i < n; i++) {
            String[] contestsRowItems = scanner.nextLine().split(" ");
            scanner.skip("(rn|[nru2028u2029u0085])?");

            for (int j = 0; j < 2; j++) {
                int contestsItem = Integer.parseInt(contestsRowItems[j]);
                contests[i][j] = contestsItem;
            }
        }

        int result = luckBalance(k, contests);

        bufferedWriter.write(String.valueOf(result));
        bufferedWriter.newLine();

        bufferedWriter.close();

        scanner.close();
    }
}

Problem solution in C++ programming.

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <utility>
#include <cstring>
#include <bitset>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
using namespace std;

typedef double db;
typedef long long LL;
typedef pair< int, int > PII;
typedef pair< LL, LL > PLL;
typedef pair< db, db > PDD;

const db dInf = 1E90;
const LL lInf = ( LL ) 1E16;
const int Inf = 0x23333333;
const int N = 505;

#define it iterator
#define rbg rbegin()
#define ren rend()
#define fdi( i, x ) for ( typeof( x.rbg ) i=x.rbg; i!=x.ren; ++i )
#define foi( i, x ) for ( typeof( x.begin() ) i=x.begin(); i!=x.end(); ++i )
#define fd( i, y, x ) for ( int i=( y )-1, LIM=x; i>=LIM; --i )
#define fo( i, x, y ) for ( int i=x, LIM=y; i<LIM; ++i )
#define mkp( A, B ) make_pair( A, B )
#define pub( x ) push_back( x )
#define pob( x ) pop_back( x )
#define puf( x ) push_front( x )
#define pof( x ) pop_front( x )
#define fi first
#define se second

void Read( int &x )
{
	x = 0; char ch = '';
	while ( ch<'0' || ch>'9' ) ch = getchar();
	while ( ch>='0' && ch<='9' )
		x = x * 10 + ch - '0', ch = getchar();
}

void update( int &x, int v ) { if ( v > x ) x = v; }

int f[N];
int n, m;

int main()
{

	int v, imp;
	Read( n ), Read( m );
	fill( f + 1, f + m + 1, -Inf );
	fo ( i, 0, n )
	{
		Read( v ), Read( imp );
		fd ( j, m+1, 0 ) 
		{
			int temp = f[j]; f[j] = -Inf;
			update( f[ j+imp ], temp + v );
			update( f[j], temp - v );
		}
	}
	int ret = -Inf;
	fo ( j, 0, m+1 ) update( ret, f[j] );
	printf( "%dn", ret );

	return 0;
}

Problem solution in C programming.

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int comp(void *a,void *b)
    {
    return *(int *)b-*(int *)a;
}

int main() {

    /* Enter your code here. Read input from STDIN. Print output to STDOUT */  
    int n,k;
    scanf("%d %d",&n,&k);
    int i,temp,flag;
    int a[n],c=0;
    long long int sum=0;
    for(i=0;i<n;i++)
        {
        scanf("%d %d",&temp,&flag);
        if(flag==0)
            sum+=temp;
        else
            {
            a[c++]=temp;
        }
    }
    qsort(a,c,sizeof(temp),(void *)comp);
    for(i=0;i<c;i++)
    {
        if(i<k)
            sum+=a[i];
        else
            sum-=a[i];
    }
    printf("%lldn",sum);
    return 0;
}

Problem solution in JavaScript programming.

function processData(input) {
    //Enter your code here
    var lines = input.split("n");
    var NK = lines[0].split(" ").map(Number);
    var n = NK[0];
    var k = NK[1];
    var luck=0;
    var impo=[];
    
    for (var i=0; i < n ; i++) {
        var LI = lines[i+1].split(" ").map(Number);        
        if (LI[1]==0) {
            luck += LI[0];
            //console.log("unimport => lose " + LI[0]);
        } else {
            impo.push(LI[0]);
            //console.log("important => wait " + LI[0]);
        }
    }
    impo.sort(function(a,b) { return b - a;});
    //console.log(impo);
    for (var i=0 ; i < impo.length ; i++) {
        if (i < k) {
            luck += impo[i];            
        } else {
            luck -= impo[i];
        }
    }
    
    console.log(luck);
} 

process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
    _input += input;
});

process.stdin.on("end", function () {
   processData(_input);
});

coding problems solutions interview prepration kit

Post navigation

Previous post
Next post
  • Automating Image Format Conversion with Python: A Complete Guide
  • HackerRank Separate the Numbers solution
  • How AI Is Revolutionizing Personalized Learning in Schools
  • GTA 5 is the Game of the Year for 2024 and 2025
  • Hackerrank Day 5 loops 30 days of code solution
How to download udemy paid courses for free

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes