Возможно, нет идеального решения, но, возможно, немного более понятно, чем предыдущие:
public boolean makeBricks(int small, int big, int goal) {
//not testing for invalid input - no invalid input from codingbat.com (in this case)
int obviousDemandSmall = goal%5;
if (obviousDemandSmall>small) return false;
boolean needSmallToMakeUpForBig = (goal/5>big) ? true : false;
if (!needSmallToMakeUpForBig) return true;
int superfluousSmallFromFirstGlance = small-obviousDemandSmall;
int extraSmallCanMakeThisManyBig = superfluousSmallFromFirstGlance/5;
int missingBig = goal/5-big;
if (extraSmallCanMakeThisManyBig>=missingBig) return true;
return false;
}