In this post, we will solve the Tower Breakers Jumps HackerRank Solution. This problem (Tower Breakers) is a part of the HackerRank Problem Solving series.
Two players are playing a game of Tower Breakers! Player 1 always moves first, and both players always play optimally.The rules of the game are as follows:
- Initially there are n towers.
- Each tower is of height m.
- The players move in alternating turns.
- In each turn, a player can choose a tower of height x and reduce its height to y, where and evenly divides .
- If the current player is unable to make a move, they lose the game.
Given the values of and , determine which player will win. If the first player wins, return . Otherwise, return.
Tower Breakers Hacker Rank Solution
Problem solution in Python programming:
def towerBreakers(n, m): #return 1 + (not n&1 or m==1) def ceil(n): return int(n) + boolify(n % 1) def boolify(n): try: n //= n return n except: return 0 return 1 + ceil( ( ( (n & 1) - 1) * -1 + ( boolify( m - 1 ) - 1 ) * -1 ) / 2 )
Problem solution in JavaScript programming:
function towerBreakers(n, m) { if(m==1){ return 2; } if(n%2==0){ return 2; }else{ return 1; } }
Problem solution in Java programming:
public static int towerBreakers(int n, int m) { boolean evenTowers = n%2==0; boolean gotMoves = m>1; if(!gotMoves){ return 2; } if(evenTowers){ return 2; } return 1; }
Leave a Reply