정말 CS 전공자가 FizzBuzz Test 정도도 못 짤 수 있나요?
Are there really programmers with computer science degrees who cannot pass the FizzBuzz test?
정말 CS 전공자가 FizzBuzz Test 정도도 못 짤 수 있나요?
Quora에 올라온 질문이다.
Fizzbuzz Test란 아래와 같다.
1 ~ 100까지의 숫자를 출력하되, 3의 배수들은 “Fizz”, 5의 배수들을 “Buzz”, 3과 5의 배수들은 “FizzBuzz”를 출력하고 그 외는 그냥 숫자를 출력하는 프로그램을 만들라.
CS 전공자라면 한번 머릿속으로 풀어보라. 1분 이내에 풀면 상위 클래스에 든다고 본다.
질문자는 많은 CS 전공 면접자들을 만났는데 정말 이 FizzBuzz를 못푸는 개발자들이 태반이더라, 심지어 Senior Programmer이라고 하는 사람이 이걸 푸는데 10~15분이 걸리더라, 이게 말이되느냐? 라는 질문을 던진다.
면접에서 개발자들을 Interview 해보면 피타고라스의 정리를 설명하지 못하는 개발자들을 수없이 만났다. (사실 이런 질문을 한다는 것도 기분 나쁠 수도 있다.)
개발자로 지원하는데 Programming을 잘 못하는 지원자들이 생각보다 많다. 전공자인데도 % 기호를 모르는 개발자도 많나 봤으니. 한국처럼 조건을 분명하게 명시하지 않는 외국에서는 더욱더 그런일이 비일비재하나 보다.
codinghorror는 이들을 박멸(eradicate)해야 한다고 한다. 전체적인 CS Job Market의 질을 흐리는 사람들이라고 정의한다. Link. 그리고 모든 CS 전공 관련 개발자 인터뷰에서 이런 간단한 FizzBuzz류 문제들을 풀게함으로써 검증하고 걸러내야한다고 말한다. 너무 가혹하지 않은가 라는 생각도 든다마는 회사 입장에서는 그만큼 검증된 인력들이 지원하기를 바라고, 지원자들 입장에서는 더 탄탄한 기본을 다지라는 채찍 정도로 해석해야 할 것이다.
그나져나, 이게 답이 맞겠지…덜덜덜 ㅎ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <stdio.h> int main() { int r3, r5; //for(int i=0; i<=100; i++) for(int i=1; i<=100; i++) //fixed. 17.03.13 { r3 = i%3; r5 = i%5; if( (r3==0) && (r5==0) ) printf("FizzBuzz "); else if(r3==0) printf("Fizz "); else if(r5==0) printf("Buzz "); else printf("%d ", i); } } |
result :
1 2 3 |
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz |