Amazon Interview Question
Country: United States
class Marks {
private int marks1, marks2, marks3, maxMarks;
public Marks(int a, int b, int c) {
marks1 = a;
marks2 = b;
marks3 = c;
maxMarks = getMax(marks1, marks2, marks3);
}
public int getMaxMarks() {
return maxMarks;
}
public boolean isPass() {
if ((marks1 + marks2 + marks3)/3 >= 40) {
return true;
}
return false;
}
private int getMax(int a, int b, int c) {
return getHigher(getHigher(a, b), c);
}
private int getHigher(int a, int b) {
if (a > b) {
return a;
}
return b;
}
}
import java.util.ArrayList;
import java.util.List;
class StudentList {
private List<Marks> allMarks;
public StudentList() {
allMarks = new ArrayList<Marks>();
}
public int totalStudents() {
return allMarks.size();
}
public int passCount() {
int count = 0;
for (Marks m : allMarks) {
if (m.isPass()) {
count++;
}
}
return count;
}
}
public class Marks
{
public static int final maxMarks;
private int marks1;
private int marks2;
private int marks3;
public Marks()
{
}
public Marks(int marks1, int marks2, int marks3)
{
this.marks1 = marks1;
this.marks2 = marks2;
this.marks3 = marks3;
maxMarks = 100;
}
public int getMarks1()
{
return this.marks1;
}
public void setMarks1(int marks1)
{
this.marks1 = marks1;
}
public int getMarks2()
{
return this.marks2;
}
public void setMarks2(int marks2)
{
this.marks2 = marks2;
}
public int getMarks3()
{
return this.marks3;
}
public void setMarks3(int marks3)
{
this.marks3 = marks3;
}
public int getMaxMarks()
{
return Math.max(marks1, Math.max(marks2,marks3));
}
public boolean isPass()
{
return ((marks1+marks2+marks3)/3) >= 40.0f;
}
}
import java.util.ArrayList;
public class StudentList{
private ArrayList<Marks> allMarks;
public StudentList()
{
allMarks = new ArrayList<Marks>();
}
public int totalStudents()
{
return allMarks.size();
}
public int passCount()
{
int count = 0;
for(Marks m : allMarks)
{
if(m.isPass())
count++;
}
return count;
}
}
public class StudentList {
private Marks[] allMarks;
public Marks[] getAllMarks() {
return allMarks;
}
public void setAllMarks(Marks[] allMarks) {
this.allMarks = allMarks;
}
public int totalStudents() {
return allMarks.length;
}
public int passCount() {
int tot = 0;
for(int i=0;i<totalStudents();i++) {
if(allMarks[i].isPass())
tot+=1;
}
return tot;
}
public static void main(String[] args) {
Marks[] m = new Marks[3];
m[0] = new Marks(41,33,32);
m[1] = new Marks(23, 45, 67);
m[2] = new Marks(40, 40, 45);
StudentList l = new StudentList();
l.setAllMarks(m);
System.out.println(l.totalStudents()+" "+l.passCount());
}
}
class Marks {
private int marks1;
private int marks2;
private int marks3;
private int maxMarks;
public Marks(int marks1,int marks2 , int marks3) {
this.marks1 = marks1;
this.marks2 = marks2;
this.marks3 = marks3;
this.maxMarks = this.marks1 > this.marks2 ? (this.marks1>this.marks3 ? marks1 : marks3) : (this.marks2 > this.marks3 ? this.marks2 : this.marks3);
}
public int getMarks1() {
return marks1;
}
public void setMarks1(int marks1) {
this.marks1 = marks1;
}
public int getMarks2() {
return marks2;
}
public void setMarks2(int marks2) {
this.marks2 = marks2;
}
public int getMarks3() {
return marks3;
}
public void setMarks3(int marks3) {
this.marks3 = marks3;
}
public int getMaxMarks() {
return maxMarks;
}
public void setMaxMarks(int maxMarks) {
this.maxMarks = maxMarks;
}
public boolean isPass() {
return (getMarks1()+getMarks2()+getMarks3())/3 >= 40 ? true : false;
}
public static void main(String[] args) {
Marks m = new Marks(41, 40,38);
System.out.println(m.getMaxMarks()+" "+m.isPass());
}
}
In Python just for fun...
class Marks(object):
def __init__(self, mark1, mark2, mark3):
self.mark1 = mark1
self.mark2 = mark2
self.mark3 = mark3
self.maxmark = max([mark1, mark2, mark3])
def getMaxMarks(self):
return self.maxmark
def isPass(self):
return (self.mark1 + self.mark2 + self.mark3) / 3 >= 40
class StudentList(object):
def __init__(self, all_marks):
self.all_marks = all_marks
def totalStudents(self):
return len(self.all_marks)
def passCount(self):
return sum([1 for mark in self.all_marks if mark.isPass()])
if __name__ == '__main__':
# simple test...prints 1
print repr(StudentList([Marks(35, 40, 45), Marks(15, 15, 9), Marks(30, 30, 30)]).passCount())
function _getMaxMarks() {
"use strict"
return this.maxMarks
}
function _isPass() {
"use strict"
return ((this.marks1 + this.marks2 + this.marks3) / 3) >= 40
}
function Marks(marks1, marks2, marks3) {
"use strict"
this.marks1 = marks1
this.marks2 = marks2
this.marks3 = marks3
this.maxMarks = Math.max.apply(Math, arguments)
}
function _totalStudents() {
"use strict"
return this.allMarks.length
}
function _passCount() {
"use strict"
return this.allMarks.filter(function (marks, i, allMarks) {
return marks.isPass()
}).length
}
function StudentList(allMarks) {
"use strict"
this.allMarks = allMarks
}
Marks.prototype.getMaxMarks = _getMaxMarks
Marks.prototype.isPass = _isPass
StudentList.prototype.totalStudents = _totalStudents
StudentList.prototype.passCount = _passCount
#include <iostream>
#include <vector>
#include <iterator>
class Marks {
private:
int marks1, marks2, marks3, maxMarks;
public:
Marks() {}
Marks(int i, int j, int k): marks1(i), marks2(j), marks3(k), maxMarks(std::max(marks1,std::max(marks2,marks3))) {}
auto getMaxMarks() const -> int {
return maxMarks;
}
auto isPass() const -> bool {
return ((marks1+marks2+marks3)/3 >= 40 ? true : false);
}
};
class StudentList {
private:
std::vector<Marks> allMarks;
public:
StudentList(std::vector<Marks> allMarks): allMarks(allMarks) {}
auto totalStudents() const -> int {
return allMarks.size();
}
auto passCount() const -> int {
int count = 0;
for (auto& mark : allMarks) {
count += (mark.isPass() ? 1 : 0);
}
return count;
}
};
//Marks Class
public class Marks {
private int marks1, marks2, marks3, maxMarks;
private boolean isPass;
public Marks(int marks1, int marks2, int marks3){
this.marks1 = marks1;
this.marks2 = marks2;
this.marks3 = marks3;
this.maxMarks = getMaxMarks(marks1, marks2, marks3);
this.isPass = isPass(marks1, marks2, marks3);
}
private static int getMaxMarks(int...marks){
int max = 0;
if(marks.length > 0){
max = marks[0];
}
for(int i:marks){
if(i>max){
max = i;
}
}
return max;
}
private static boolean isPass(int...marks){
int avg = 0;
for(int i:marks){
avg += i;
}
if((avg/marks.length)>=40){
return true;
}
else{
return false;
}
}
public boolean isPass() {
return isPass;
}
}
//StudentList Class
//Marks Class
public class Marks {
private int marks1, marks2, marks3, maxMarks;
private boolean isPass;
public Marks(int marks1, int marks2, int marks3){
this.marks1 = marks1;
this.marks2 = marks2;
this.marks3 = marks3;
this.maxMarks = getMaxMarks(marks1, marks2, marks3);
this.isPass = isPass(marks1, marks2, marks3);
}
private static int getMaxMarks(int...marks){
int max = 0;
if(marks.length > 0){
max = marks[0];
}
for(int i:marks){
if(i>max){
max = i;
}
}
return max;
}
private static boolean isPass(int...marks){
int avg = 0;
for(int i:marks){
avg += i;
}
if((avg/marks.length)>=40){
return true;
}
else{
return false;
}
}
public boolean isPass() {
return isPass;
}
}
//StudentList Class
public class StudentList {
private List<Marks> allMarks;
public StudentList(){
allMarks = new ArrayList<Marks>();
}
public int totalStudents(){
return this.allMarks.size();
}
public int passCount(){
int passCnt = 0;
for(Marks m:this.allMarks){
if(m.isPass()){
passCnt++;
}
}
return passCnt;
}
}
- Rahul August 31, 2014