We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
  • Hackerrank Home
  • Prepare
    NEW
  • Certify
  • Compete
  • Career Fair
  • Hiring developers?
  1. Lego Blocks
  2. Discussions

Lego Blocks

Problem
Submissions
Leaderboard
Discussions
Editorial

Sort 10 Discussions, By:

recency

Please Login in order to post a comment

  • alvigar93
    5 days ago+ 0 comments

    I don't understan why for n = 3, m = 2 the solution is 7, the possible solutions are without repeats, with my code in javascript:

    function legoBlocks(n, m) {
        const combinations = summa([], m);
        return buildFigure(combinations, [], n)
    }
    
    function buildFigure(combinations, figure, n) {
        if (figure.length < n) {
            return combinations.reduce((prev, element) => {
                if (figure.length > 0 && figure[figure.length - 1].length > 1 && element.length > 1) {
                    for(let j = 0; j < figure[figure.length - 1].length; j++) {
                        if (Array.from(figure[figure.length - 1])[j] === Array.from(element)[j]) {
                            return prev
                        }
                    }
                }
                return prev + buildFigure(combinations, figure.concat(element), n)
            }, 0)
        } else {
            //figure.forEach(row => console.log(row))
            return 1;
        }
    }
    
    function summa(row, m) {
        const tempSumma = row.reduce((prev, block) => prev + block, 0);
        if (tempSumma < m) {
            //console.log(`Is little ${row} - ${tempSumma}`)
            return [1, 2, 3, 4].flatMap(newBlock => {
                if (tempSumma + newBlock <= m) {
                    return summa(row.concat([newBlock]), m)
                } else return ''
            }).filter(row => row.length > 0)
        } else if (tempSumma === m) {
            //console.log(`${row} - ${m}`)
            return row.join(' ')
        } else {
            return ''
        }
    }
    
    1 1
    2
    1 1
    
    1 1
    2
    2
    
    2
    1 1
    2
    
    2
    2
    1 1
    
    2
    2
    2
    
    0|
    Permalink
  • khiemnguyen127
    4 weeks ago+ 0 comments

    Just read editorial. I need to study more math.

    0|
    Permalink
  • yashdeora98294
    4 months ago+ 0 comments

    here is problem solution in java python c++ and c programming - https://programs.programmingoneonone.com/2021/07/hackerrank-lego-blocks-problem-solution.html

    -4|
    Permalink
  • pm_kwyjibo
    5 months ago+ 0 comments

    There's a very unintuitive bit of the question which is that only COMPLETE vertical breaks should be avoided (i.e. that span the whole height). This is completely different to how you would intuitively build a wall in real life; you would not want any vertical breaks larger than height=1. There should at least be an example to make this clear as I don't think there's a neat solution for the more intuitively posed version of this question.

    3|
    Permalink
  • marcus_xj220
    8 months ago+ 1 comment

    Isn`t there a single O(1) math solution for this? I could only find a formula for a width (m) < 5, which would be: ((2^n)-1)^(m-1) (no matter what the height (n). But for m>=5 i couldnt find any formula.

    1|
    Permalink
Load more conversations

Need Help?


View editorial
View top submissions
  • Blog
  • Scoring
  • Environment
  • FAQ
  • About Us
  • Support
  • Careers
  • Terms Of Service
  • Privacy Policy