JavaRush /Java Blog /Random-KO /두뇌 건강. 프로그래밍 기술 향상을 위한 현재 과제

두뇌 건강. 프로그래밍 기술 향상을 위한 현재 과제

Random-KO 그룹에 게시되었습니다
우리가 알고 있듯이, 프로그래머는 정기적으로 크고 작은 다양한 문제에 대해 생각하고, 분석하고 때로는 명확하지 않은 해결책을 찾아야 합니다. 이를 위해 코더는 이미 극도로 "비싼"장난감인 뇌를 적극적으로 사용해야 합니다. 인간의 뇌는 체중의 1.5-2% 이하의 질량을 가지며 전체 에너지의 약 25%를 소비합니다. 그리고 이것은 평범한 사람을 위한 것이며, 복잡한 프로젝트에 적극적으로 참여하는 프로그래머의 두뇌가 에너지의 몇 퍼센트를 "소비"하는지 상상하기가 무섭습니다. 영국인일 가능성이 가장 높은 과학자들은 아직 정확한 지표를 확립하지 못했습니다. 두뇌 건강.  프로그래밍 기술 업그레이드를 위한 현재 과제 - 1이 모든 것에서 어떤 결론을 내릴 수 있습니까? 좋은 프로그래머가 되고 그 상태를 유지하려면 뇌를 자극하여 과도한 스트레스 없이 정기적으로 해결책을 찾고 생각하도록 가르쳐야 합니다. 정말 효과적인 모든 방법과 마찬가지로 진부하지만 효과적입니다. 두개골의 회백질을 좋은 상태로 유지하는 데 도움이 되도록 오늘 우리는 프로그래머를 위한 퍼즐과 퍼즐이 포함된 좋은 리소스를 선택하고 영어에서 몇 가지 흥미로운 문제를 번역했습니다.

프로그래머를 위한 작업이 포함된 웹사이트

컬렉션에 있는 거의 모든 리소스는 영어로 되어 있으므로 코딩 문제와 퍼즐 해결을 연습할 수 있을 뿐만 아니라 프로그래밍에서 영어를 사용하는 추가 연습을 얻을 수 있는 기회도 갖게 됩니다 .두뇌 건강.  프로그래밍 기술 업그레이드를 위한 현재 과제 - 2
  1. 코더바이트

    프로그래머를 위한 작업이 포함된 가장 인기 있는 영어 리소스 중 하나입니다. 여기에서는 다양한 수준의 복잡성을 지닌 200개 이상의 작업을 찾을 수 있으며, 이는 사용 가능한 10가지 프로그래밍 언어(Java 포함) 중 하나를 사용하여 온라인 사이트에서 직접 해결할 수 있습니다.

  2. 프로그래밍 실습

    프로그래밍 프락시스(Programming Praxis)는 프로그래머를 위한 다양하고 흥미롭고 가장 중요한 관련 작업을 정기적으로 게시하는 인기 블로그입니다. 다양한 프로그래밍 언어에 공통적으로 적용됩니다. 이 과제는 코더가 기술의 최신 변화와 실제로 프로그래밍에 대한 접근 방식을 따라잡을 수 있도록 고안되었습니다.

  3. 탑코더

    TopCoder는 다양한 문제를 개발하고 해결하는 것을 좋아하는 활발한 프로그래머 커뮤니티입니다. 새로운 과제는 정기적으로 게시되며, 성공적인 솔루션은 HR을 연습하고 향상시킬 수 있는 기회를 제공할 뿐만 아니라 상금도 받게 됩니다.

  4. 코드카타

    CodeKata는 유명한 책 Pragmatic Programmer("The Pragmatic Programmer. The Path from Apprentice to Master")의 저자 중 한 명인 Dave Thomas가 발명한 프로그래머를 위한 매우 독창적이고 재치 있는 문제가 많이 포함된 블로그입니다. CodeKata 웹사이트의 문제는 다양하며, 솔루션은 실제 프로그래밍 작업과 관련이 있습니다.

  5. ACIP/ICPC를 위한 온라인 북경대학교 판사

    ACIP/ICPC를 위한 Peking University JudgeOnline은 다양한 대회 및 대회의 프로그래머를 위한 작업이 포함된 Peking University의 페이지입니다. 사이트는 정기적으로 업데이트되며 문제는 실시간으로 해결될 수 있으며 북경대학교 전문가 위원회에서 솔루션을 평가합니다.

  6. 프로젝트 오일러

    심각하고 사소하지 않은 작업을 수행하는 또 다른 오래된 잘 알려진 사이트입니다. “프로젝트 오일러(Project Euler)는 해결하기 위해 수학에 대한 지식 이상의 것을 요구하는 복잡한 수학 및 프로그래밍 문제의 모음입니다. 문제의 복잡성은 다양하며 접근 방식은 귀납적 연쇄 학습을 기반으로 합니다. 즉, 하나의 문제를 해결하면 이전에는 이해할 수 없었던 다른 문제를 해결할 수 있는 새로운 개념을 발견하게 될 것입니다.”라고 리소스 작성자는 말합니다.

  7. 데일리 WTF

    Daily WTF는 BYOC(Bring Your Own Code) 원칙에 따라 운영되는 또 다른 인기 있는 프로그래밍 커뮤니티입니다. 즉, 개발자가 다양한 원래 문제를 해결하기 위해 자신의 소스 코드를 공유한다는 의미입니다. "BYOC의 목적은 간단합니다. 소프트웨어 개발자로서 일반적이고 지루한 문제보다 조금 더 흥미로운 문제를 해결하여 프로그래밍 기술을 향상할 수 있는 기회를 제공하는 것입니다."라고 사이트는 말합니다.

  8. 트프로거

    Google, Facebook 등의 회사에서 기술 인터뷰를 진행하는 동안 전문가의 기술을 테스트하는 데 사용되는 알고리즘 작업이 포함된 우수한 러시아어 사이트입니다. 다양한 난이도의 원래 문제를 포함하여 많은 문제가 제시되어 있습니다.

  9. Al Zimmermann의 프로그래밍 콘테스트

    "미친 프로그래머들이 명성과 멋진 상을 놓고 경쟁하는" 유명한 작가의 사이트입니다. 대회는 1년에 1~2회 개최되며, 리소스 메인 페이지에 저명한 프로그래머의 이름이 게재되어 유망한 고용주의 관심을 끌고 있습니다.

  10. 티머스 온라인 심사위원

    자동 검사 시스템을 갖춘 프로그래밍 문제에 대한 가장 큰 러시아어 아카이브 중 하나입니다. 아카이브 작업의 주요 소스는 우랄 연방 대학교, 우랄 챔피언십 및 기타 지역 프로그래밍 이벤트의 대회입니다. Timus Online Judge를 사용하면 Ural Federal University에서 정기적으로 개최되는 대부분의 대회의 온라인 버전에 참가할 수도 있습니다.

5가지 흥미로운 작업

빨리 시작하고 싶은 사람들을 위한 몇 가지 흥미로운 퍼즐을 소개합니다. 두뇌 건강.  프로그래밍 기술 향상을 위한 현재 과제 - 3
  1. 스티브 잡스의 블렌더 수수께끼

    과제: 당신은 니켈 크기로 줄어들어 믹서기에 던져졌습니다. 체중이 감소하여 신체 밀도가 동일하게 유지됩니다. 60초 후에 블레이드가 회전하기 시작합니다. 당신의 행동은?

    이는 Apple의 창립자인 Steve Jobs와 관련된 고전적인 작업입니다. 1997년 잡스가 애플로 돌아왔을 때 그는 회사의 모든 직원을 개인적으로 인터뷰했고 이 작업을 첫 번째 테스트 중 하나로 사용했습니다.

    해결책:

    У данной задачи больше одного решения, так How она служит для того, чтобы оценить креативность сотрудника, умение быстро находить выход из стрессовой ситуации и неординарно мыслить. Вот наиболее классический вариант решения: лечь How можно плотнее к днищу блендера, чтобы его лезвия крутorсь над вами.

  2. Сколько людей было на конференции?

    Задача: На конференции каждый гость пожал руку всем остальным. Было 66 рукопожатий. Сколько человек было на научной конференции?

    Другая классическая программистская задача из тех, которые часто дают на первых этапах технических собеседований.

    Классическое решение:

    Допустим, на конференции было n человек. Первый человек пожимает руку всем остальным: n-1 раз (n-1 человек). Второй человек пожимает руку всем остальным (но не первому, так How это уже было сделано): n-2 раза. 3-й человек пожимает руку всем остальным: n-3.

    Таким образом, общее количество рукопожатий будет = (n-1) + (n-2) + (n-3) + …… 0;
    = (n-1) * (n-1 + 1) / 2 = (n-1) * n / 2 = 66
    = n ^ 2 -n = 132
    = (n-12) (n + 11) = 0;
    = n = 12 ИЛИ n = -11

    Вариант -11 исключен, поэтому ответ: 12 человек.

  3. Бар и 25 стульев.

    Еще одна классическая и весьма остроумная задачка, на этот раз посложнее.

    Задача: Есть бар с 25-ю стульями, которые расположены в линию. Посетители этого бара — антисоциальные личности, поэтому, когда они заходят в бар, то всегда стараются найти место How можно дальше от остальных. Если постоянный посетитель заходит в бар и обнаруживает, что свободного места без соседства с кем-либо нет, он разворачивается и уходит. Владелец бара, естественно, хочет видеть можно больше посетителей. Владелец может указать место, на которое нужно сесть, только первому клиенту, тогда How все остальные сами выберут себе самое дальнее место от других. Предположим, что места пронумерованы от 1 до 25. Какое место должно быть занято первым?

    Решение:

    Первый человек должен сесть на стул 9 or 17 (из-за симметрии, не имеет значения, Howое именно из двух мест). Предположим, он выбирает место 9. Следующий человек выберет место 25, так How оно самое дальнее от места 9. Следующие два человека займут места 1 и 17. Следующие три займут 5, 13 и 21. Следующие шесть будут занимать стулья 3, 7, 11, 15, 19 и 23. Таким образом, в баре разместится максимум 13 человек, и никто не будет сидеть рядом с другим человеком. Если место, отличное от 9 or 17, будет выбрано первым, общее количество посетителей бара будет меньше 13.

  4. Деньги в карманах и религия.

    Интересно составленная задача на нахождение алгоритма.

    문제: 한 남자가 주머니에 돈을 가지고 있는데 그 총액은 90~95달러입니다. 도중에 그는 여러 사원을 방문합니다. 그는 사찰에 들어가자마자 돈이 두 배로 늘어나 각 사찰에 100달러를 기부하게 된다. 그 결과 마지막 절을 방문한 후 그의 주머니는 텅 비게 된다. 이제 문제는 그가 처음에 얼마나 많은 돈을 가지고 있었고 얼마나 많은 사원을 방문했습니까?

    해결책:

    우리는 마지막 사원부터 세기를 시작합니다.

    마지막 사원을 방문한 후 (1) 돈이 0 남았으므로 => ​(0 + 100) / 2 = 50. 마지막 사원을 방문하기 전에 그는 50달러를 가지고 있었습니다.

    이전 사원(2)을 방문하기 전에는 (50 + 100) / 2 = 75였습니다.
    이전 사원(3)을 방문하기 전에는 (75 + 100) / 2 = 87.5였습니다.
    이전 사원(4)을 방문하기 전에는 (87.5 + 100) / 2 = 93.75였습니다.
    이전 사원(5)을 방문하기 전에는 (93.75 + 100) / 2 = 96.875 - 금액이 초기 조건을 초과합니다.
    답: 그 사람은 원래 $93.75를 가지고 있었고 4개의 사원을 방문했습니다.

  5. 현장에서 발생한 사건입니다.

    그리고 마지막으로 또 다른 오래된 고전, 아코디언과 같은 논리적 사고 문제라고 할 수도 있습니다.

    문제: 밀밭에서 죽은 사람이 발견되었습니다. 그는 성냥을 손에 꼭 쥐고 있었습니다. 그 사람은 왜 죽었나요?

    해결책:

    그 남자는 동료 승객 3명과 함께 비행기를 타고 있었습니다. 엔진이 멈추고 비행기가 추락하기 시작했습니다. 남자들은 그들 중 4명을 위한 낙하산이 3개밖에 없다는 것을 발견하고 성냥을 당기기 시작했습니다. 그들 중 한 명은 짧은 것을 꺼내 낙하산 없이 강제로 뛰어내렸습니다.

발문

글쎄요, 이러한 문제가 너무 단순하거나 너무 일반적이라고 생각하는 사람들을 위해 Java 프로그래머 인터뷰에서 종종 주어지는 까다로운 문제를 포함하여 더 복잡한 Java 문제가 있습니다 . 프로그래머를 위한 흥미로운 퍼즐을 알고 있거나 가장 좋아하는 작업을 공유하고 싶다면 댓글을 작성하세요.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION