I tend to disagree due to the presence of a clearly visible genitive case in your solution. Sometimes it is just necessary to be as close to the original as can be in translating, especially if learners are supposed to entertain a certain awareness and eye for those slight grammatical differences. With your solution, another reading would be possible as well: "I buy the birthday cake from grandfather." So the meaning is not exactly all the same. Eventually it will all boil down to didactics in such scenarios. I reckon your translation right in a way, but not the best option. There are "false negatives" around in this Korean section which are waaaaay worse. Here I can at least make a tiny argument in favour of this variant's rejection (be it sufficient or not). Cheers!
that's the problem with this course in my opinion. it flips between intended meaning and literal translation too much and it's confusing.
No the "for" is not implied; it literally says, "I buy (my) grandfather's birthday cake" (since the genitive case 의 can and very commonly is omitted); the meaning is reinterpreted, which I am not a fan of; I'd prefer they either teach a sentence or pattern that better reflects this "for," or give the meaning as it is most directly understood.