구글 Foobar, 구글 Foobar 도전 해결

나는 최근에 구글의 인코딩 도전Foobar을 완성했다.이것은 정말 매우 재미있는 프로그래밍 게임이다. 나는 나의 경험을 공유하고 싶다!

이게 어떻게 된 일입니까?


Foobar는 구글이 주최하는 초청만 가능한 인코딩 도전이다.완성상?모집 기회.일단 어느 단계를 통과하면 구글 채용 인원에게 해결 방안과 개인 정보를 제출할 수 있다.그러나 면접 기회를 얻는다는 보장도 없고 모든 사람이 채용 인원으로부터 회답을 받을 수 있는 것도 아니다.하지만 이 점에 너무 집중하지 말고 즐겁게 놀면 된다고 조언했다.만약 네가 정말 구글을 신청하고 싶다면, 통상적으로 더욱 간단한 방법이 있다.

다행이네요. 어디서 신청합니까?


이것은 초대만 하기 때문에 직접 foobar website로 가는 것은 도움이 되지 않습니다. 등록 옵션이 없기 때문입니다.초대를 받을 수 있는 방법은 두 가지가 있다.
  • 구글로부터 직접 초청을 받았다.이것은 사실 어렵지 않다. 구글에서'arraylistjava'나'mutexlock'같은 키워드를 여러 번 검색해야만 초대 메커니즘을 터치할 수 있다.전체 메커니즘here을 설명했다.
  • 이미 참여한 사람으로부터 직접 초대를 받는다.각 참가자는 도전의 특정 단계를 완료한 후 최대 두 번의 초대를 받을 수 있습니다.따라서 누군가가 도전하고 있다는 것을 알면 그들에게 물어봐도 된다.
  • 지금까지의 이야기.


    시작할 때, 유닉스 셸 인터페이스를 받을 수 있습니다.표준 유닉스 명령 (예를 들어 "ls", "cat", "cd") 을 사용하여 셸과 상호작용할 수 있습니다.너는 처음부터 일기장 항목을 발견했는데, 그것은 너에게 상황을 설명했다.

    이것은 토끼를 주제로 한 스타워즈의 열광적인 이야기로, 너는 반드시 인코딩을 통해 완성해야 한다.믿기지 않을 정도로 듣기 좋다.)

    프로그래밍 도전


    당신의 임무에서 진전을 얻기 위해서는 지휘관인 람다의 옷장을 복구하는 것부터 우주정거장에서 토끼 죄수를 구하는 것까지 일련의 프로그래밍 도전을 수행해야 한다.이 도전들은 난이도가 점차 증가하는 다섯 단계로 나뉜다.이 작업들은 경쟁 프로그래밍 사이트에서 찾은 작업과 유사합니다.Foobar는 특히 동적 기획과 수학 문제가 많다.수평적인 간략한 설명:

  • 1 레벨: 질문 1개.

  • 2 레벨: 질문 2개.완성되면 친구를 초대합니다.

  • 3급: 질문 3개.완성되면 구글이 채용할 수 있도록 정보를 제공한다.

  • 4 레벨: 질문 2개.완성되면 다른 친구를 초대합니다.

  • 레벨 5: 최종 문제 1개.
  • Java와 Python 2.7(yikes!)으로 솔루션을 제출할 수 있습니다.너는 심지어 통합된 코드 편집기를 사용할 수 있다.나의 경험에 의하면 난이도는 3 레벨 정도에서 증가하기 시작한다.그러나 같은 등급의 문제 사이에서도 어려움은 종종 다르다.나의 3급 문제 중 하나는 마르코프 체인에 관한 것이다. 나는 이틀이 넘게 걸려서야 완성했고, 나는 몇 시간 안에 나머지 3급을 완성했다.

    종말


    마지막으로, 당신은 란다 지휘관의 사악한 계획을 물리치고 모든 토끼를 구하고 은하계를 구했습니다!당신은 지금 신비한 암호화 메시지를 받았습니다.이 가능하다, ~할 수 있다,...

    구글에서 새로운 해킹 공격을 한 후에 나는 이것이 간단한 암호화라는 것을 발견했다.이 메시지는 나의 구글 사용자 이름과 다른 것으로 인코딩되어 베이스64로 인코딩되었다.그래서 너는 이 과정을 반전시켜 그것을 복호화할 수 있다.이것을 실현하기 위해python 스크립트를 사용하도록 하겠습니다.
    # Script source: https://vitaminac.github.io/Google-Foobar-Decrypt-Message/
    import base64
    from itertools import cycle
    
    message = "L0YAHA0qFhseRk1uQVQOHCwSHEpNTXMCHAUCLBIPGARKdFtTTgs6Bw0IDAgwRl9JSSwVDgITGSdG U1NObhoGDhMIMAgRBQtuX0hKAA48CBYfCyQWBhlGTW5BVBwAJRwLBgQJc01TThwoEQoEFR5zQUlJ SToSDghGQXRGFQYBblNSTUYaPQ9SThM="
    key = bytes("TasinIshmam", "utf8")
    print(bytes(a ^ b for a, b in zip(base64.b64decode(message), cycle(key))))
    
    # Output: 
    # {'success' : 'great', 'colleague' : 'esteemed', 'efforts' : 'incredible', 'achievement' : 'unlocked', 'rabbits' : 'safe', 'foo' : 'win!'}
    

    권고
  • 천천히 하세요.구글은 모든 문제를 완성할 수 있는 충분한 시간을 준다. (5급 문제에 대해서는 20일이 넘는다.)따라서 조급해하지 말고 문제를 철저히 연구하고 최적화된 해결 방안을 설계해야 한다.
  • 표준 라이브러리에 대해 알아보십시오.많은 조합 수학 유형의 문제에 대해python 표준 라이브러리는 절대적으로 좋은 기회이다.Python/Java 표준 라이브러리에서 이미 제공한 함수를 작성하지 마십시오.
  • 문제 사이에 약간의 휴식 문제 사이에는 시간 제한이 없기 때문에 새로운 문제를 제기하기 전에 원하는 만큼 시간을 쓸 수 있다.어떤 문제는 시간이 오래 걸려야 해결될 수 있기 때문에 투자를 할 시간이 있다고 확신하지 않는 한 새로운 문제를 서둘러 제기하지 마라.
  • Foobar는 공부를 위한 것이지 일을 위한 것이 아니다. Foobar는 구글에서 면접을 보는 가장 효과적인 방식이 아닐 수도 있다.채용 인원이 언제 응답할지 전혀 확실하지 않다.따라서 이 점을 걱정하기보다는 Foobar로 공부하면 스트레스가 훨씬 줄어든다.
  • 결론


    Foobar는 프로그래밍 문제가 해결되는 세계에 깊이 파고들 수 있는 좋은 방법이다.전체 과정은 하나의 방식으로 설정되어 있어, 이렇게 하면 너는 걸으면서 배울 수 있다.이런 문제들을 할 때, 나는 개인적으로 마르코프 체인, 거슬러 올라가기, 세포 자동기에 관한 지식을 많이 배웠다.
    만약 당신이 더 많은 동력을 필요로 한다면 다음은 당신이 구해야 할 모든 토끼입니다.)

    좋은 웹페이지 즐겨찾기