인터뷰 문제 - FizzBuzz

그래서 당신은 프로그래머로서 면접에 합격하려고 합니다. 테스트를 받는 몇 가지 방법이 있습니다. 코딩 기술뿐만 아니라 의사 소통 능력입니다.

Communicate, what do you mean, code either compiles and works or it don't?



글쎄, 아니, 그래서 당신은 이해 관계자 및 팀원과 함께 세상에 살고 있습니다. 그 세계에서 탐색해야 하며 이는 문제를 이해하고 명확한 질문을 하고 변경 사항에 대비해야 하며 때로는 짧은 마감일을 의미합니다.

So what can I expect on the interview then?



첫째, 단순한 문제가 아니라 모든 단계를 통해 처음부터 끝까지 의사 소통을 해야 합니다.

What phases?



문제 이해



이 단계에서는 듣고, 들은 것을 다시 반복하고 거기에서 가정을 전달해야 합니다. 이러한 가정이 잘못된 경우 설명을 얻을 수 있습니다. 당신이 하고 싶지 않은 것은 당신이 모든 것을 이해했다고 생각하는 코드를 작성하는 것입니다.

문제 분석



이 단계에서는 문제를 더 쉬운 부분, 하위 문제로 분해하는 방법에 대해 생각하기 시작해야 합니다. 직장에서는 크고 복잡한 작업이 주어지며 해결할 수 있는 작은 부분으로 나누어야 합니다. - 그게 직업이야, 오, 그리고 코딩 :).

코딩 시작



이 시점에서 문제의 더 쉬운 부분을 구현하기 시작하십시오. 원한다면 순진한 솔루션입니다. 면접관이 의견이 있는지 확인하십시오. 그런 다음 작동하는 솔루션이 나올 때까지 계속 진행하십시오.

모든 기지를 커버



이 시점에서 처리해야 할 수 있는 엣지 케이스와 코드에 대한 가능한 개선 사항을 전달해야 합니다.

여기에서 면접관이 버그를 발견하거나 새로운 요구 사항을 구현하도록 요청할 수 있습니다. 당황하지 말고 시간을 갖고 해결 방법을 찾으십시오.

요약



마지막 부분에서 면접관은 인터뷰를 요약하고 일반적인 질문을 할 수 있지만 지금까지 의사 소통을 했다면 대부분 작동하는 합리적인 코드를 작성했다면 이 인터뷰를 통과할 가능성이 있습니다.

So what problem am I likely to get, can you give m an example?



문제 : 피즈 버즈



Fizz Buzz라는 문제를 봅시다. 설명은 다음과 같습니다.

Your code is divisible by 5 and 3. If both then print "FizzBuzz", if only by 3, then "Fizz" if only by 5, then "Buzz".



이 문제에 접근하려면 하위 문제를 이해해야 합니다.

1) 나눗셈 가능, 숫자는 나눗셈되고 나머지가 남지 않으며 적어도 Python에서는 모듈 연산자가 도움이 됩니다.
2) 먼저 구현할 조건을 이해합니다. 즉, 5와 3으로 나누어지는 조건으로 시작한 다음 다른 조건을 추가해야 합니다.

해결책은 다음과 같습니다.

arr = range(30)
for item in arr:
  no = item + 1
  if no % 5 == 0 and no % 3 == 0:
    print(f"{no} FizzBuzz")
  elif no % 5 == 0:
    print(f"{no}: Buzz")
  elif no %3 == 0:
    print(f"{no} Fizz")
  else:
    print(f"{no}")


네, 시간을 들여 구현하고 소통하세요. 왜냐하면 두 가지 기술 모두에 대해 테스트를 받았기 때문입니다.

좋은 웹페이지 즐겨찾기