forked from AntDuPar/Codesignal-Leetcode-Questions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
findProfession.java
38 lines (35 loc) · 1.11 KB
/
findProfession.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
Consider a special family of Engineers and Doctors. This family has the following rules:
Everybody has two children.
The first child of an Engineer is an Engineer and the second child is a Doctor.
The first child of a Doctor is a Doctor and the second child is an Engineer.
All generations of Doctors and Engineers start with an Engineer.
We can represent the situation using this diagram:
E
/ \
E D
/ \ / \
E D D E
/ \ / \ / \ / \
E D D E D E E D
Given the level and position of a person in the ancestor tree above, find the profession of the person.
Note: in this tree first child is considered as left child, second - as right.
*/
String findProfession(int level, int pos) {
if(level == 1){
return "Engineer";
}
if(findProfession(level-1, (pos+1)/2) == "Doctor"){
if(pos%2 == 0){
return "Engineer";
}
else{
return "Doctor";
}
}
String answer = "Engineer";
if(pos%2 == 0){
answer = "Doctor";
}
return answer;
}