DEV Community

dev.to staff
dev.to staff

Posted on

6 1

Daily Challenge #242 - Expressions Matter

Given three integers a ,b ,c, return the largest number obtained after inserting the following operators and brackets: +, *, () In other words , try every combination of a,b,c with [*,+,()] , and return the highest number.

Here's an example:

1 * (2 + 3) = 5
1 * 2 * 3 = 6
1 + 2 * 3 = 7
(1 + 2) * 3 = 9 <-- So the maximum value that you can obtain is 9.

Tests

expression_matter(5, 1, 3)
expression_matter(3, 5, 7)
expression_matter(5, 6, 1)
expression_matter(1, 6, 1)
expression_matter(2, 6, 1)

Good luck!


This challenge comes from MrZizoScream on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!

Want to propose a challenge idea for a future post? Email yo+challenge@dev.to with your suggestions!

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

While many AI coding tools operate as simple command-response systems, Qodo Gen 1.0 represents the next generation: autonomous, multi-step problem-solving agents that work alongside you.

Read full post →

Top comments (7)

Collapse
 
kira009 profile image
Shohan • Edited

If one of the numbers is 1, and if the next bigger number is y and largest number is z, ans will be z * (1 + y), else ans will be x * y * z

So

def expressions_matter(a, b, c):
    x = sort([a, b, c])
    if x[0] == 1:
        return (1 + x[1]) * x[2]
    return x[0] * x[1] * x[2]
Collapse
 
vidit1999 profile image
Vidit Sarkar

Here is a Python solution,

expression_formats = [
    '{}+{}+{}',
    '{}*{}*{}',
    '{}+{}*{}',
    '{}*{}+{}',
    '({}+{})*{}',
    '{}*({}+{})'
]

def expression_matter(a,b,c):
    return max(eval(s.format(a,b,c)) for s in expression_formats)

Output,

print(expression_matter(1, 2, 3)) # output -> 9
print(expression_matter(5, 1, 3)) # output -> 20
print(expression_matter(3, 5, 7)) # output -> 105
print(expression_matter(5, 6, 1)) # output -> 35
print(expression_matter(1, 6, 1)) # output -> 8
print(expression_matter(2, 6, 1)) # output -> 14
Collapse
 
peter279k profile image
peter279k

Here is the simple solution for PHP:

function expressionMatter($a, $b, $c) {
    $possible_ans = [
      $a * $b * $c,
      $a + $b + $c,
      ($a + $b) * $c,
      $a + $b * $c,
      $a * $b + $c,
      $a * ($b + $c),
    ];

    return max($possible_ans);
}
Collapse
 
daviducolo profile image
Davide Santangelo • Edited

maybe not the most elegant, but it work!

def expression_matter(a,b,c)
  sum = [a,b,c].sum

  tmp = [a,b,c].inject('*')
  sum = tmp if sum < tmp

  tmp = (a + b) * c
  sum = tmp if sum < tmp

  tmp = a + (b * c)
  sum = tmp if sum < tmp

  tmp = a * (b + c)
  sum = tmp if sum < tmp

  tmp = (a + c ) * b
  sum = tmp if sum < tmp

  sum 
end
pry(main)> expression_matter(5, 1, 3)
=> 20
pry(main)> expression_matter(3, 5, 7)
=> 105
pry(main)> expression_matter(5, 6, 1)
=> 36
pry(main)> expression_matter(1, 6, 1)
=> 12
pry(main)> expression_matter(2, 6, 1)
=> 18
Collapse
 
coolshaurya profile image
Shaurya • Edited

My solution using Rust .
Playground

fn expressions_matter(a: u32, b: u32, c: u32) -> u32 {
    let mut all_calculations = [
        a + b + c,
        a * b * c,
        a + b * c,
        (a + b) * c,
        a * b + c,
        a * (b + c),
    ];
    all_calculations.sort();
    all_calculations[5]
}
Collapse
 
kvharish profile image
K.V.Harish

In javascript

const expression_matter=(t,a,e)=>Math.max(t+a+e,t*a*e,t+a*e,(t+a)*e,t*a+e,t*(a+e));
Collapse
 
kira009 profile image
Shohan

Hmm yes, but looking at the examplea given, I assumed a, b and c would be positive

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay