카타 8급 Expressions Matter

1 C[ | ]

int expression_matter(int a, int b, int c) {
  int res = a + b + c;
  if ((a + b) * c > res) res = (a + b) * c;
  if (a * (b + c) > res) res = a * (b + c);
  if (a * b * c > res) res = a * b * c;
  return res;
}

2 C++[ | ]

unsigned short int expressionsMatter (unsigned short int a , unsigned short int b , unsigned short int c)
{
  return std::max({a + b + c, a * (b + c), (a + b) * c, a * b * c});
}
unsigned short int expressionsMatter (unsigned short int a , unsigned short int b , unsigned short int c)
{
  std::vector<int> v={a+b+c,(a+b)*c,a*(b+c),a*b*c};
  return *std::max_element(v.begin(),v.end());
}
unsigned short int expressionsMatter (unsigned short int a , unsigned short int b , unsigned short int c)
{
  if (a == 1) return (c==1) ? (a+b+c) : (a+b)*c;
  if (b == 1) return a>c ? a*(b+c) : (a+b)*c;
  if (c == 1) return a*(b+c);
  return a*b*c;
}
unsigned short int expressionsMatter (unsigned short int a , unsigned short int b , unsigned short int c)
{
  unsigned short int max=0;
  if((a+b+c)>max) max=a+b+c;
  if((a+b)*c>max) max=(a+b)*c;
  if(((a*b)+c)>max) max=(a*b)+c;
  if(a*(b+c)>max) max=a*(b+c);
  if(a*b*c>max) max=a*b*c;
  return max;
}
unsigned short int expressionsMatter (unsigned short int a , unsigned short int b , unsigned short int c)
{
  int t, res = 0;
  t = a + b + c;
  if( t > res ) res = t;
  t = a * ( b + c );
  if( t > res ) res = t;
  t = (a + b) * c;
  if( t > res ) res = t;
  t = a * b * c;
  if( t > res ) res = t;
  return res; 
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}