Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby 인터뷰 코딩 문제 및 해결 방법

코딩 도전은 Ruby 및 문제 해결 기술을 향상시키는 훌륭한 방법입니다. 그리고 코딩 인터뷰를 준비하기 위해 !

왜?

도전하는 동안 1개의 특정 문제를 해결하는 데 모든 집중을 하기 때문입니다.

다른 것은 걱정할 필요가 없습니다.

이런 종류의 연습은 사고 능력을 확장하고 흥미로운 언어 기능을 탐색할 수 있게 해줍니다. 더 나은 Ruby 개발자가 되십시오.

이러한 문제 중 일부는 수학 트릭과 같은 컴퓨터 알고리즘, 데이터 구조 또는 개념에 대한 전문 지식이 필요합니다.

이 중 대부분을 해결할 수 없어도 괜찮습니다.

걱정하지 마세요!

지금 :

이러한 문제를 해결하는 과정에 대한 느낌을 얻기 위해 몇 가지 솔루션을 읽는 것이 도움이 될 수 있다고 생각합니다.

시작...

과제 1:중복 찾기

이 첫 번째 과제는 Integer가 있는 배열이 제공된다는 것입니다. 모든 중복 숫자를 찾는 데 필요한 값입니다.

예시 :

숫자 =[1,2,2,3,4,5]find_duplicates(숫자)# [2]

질문으로 시작하겠습니다...

"특정 번호가 중복되었는지 어떻게 알 수 있나요?"

한 번에 해결하려고 하는 것이 아닙니다.

이 단계에서는 솔루션에 더 가까이 다가갈 수 있는 질문에 답하고 싶습니다.

몇 가지 아이디어를 적어보세요 :

  • 배열에 있는 각 숫자의 개수를 셀 수 있으며 count =2는 중복을 의미합니다.
  • 모든 요소를 ​​살펴보고 "본" 요소 목록을 유지할 수 있습니다. 요소가 두 번 표시되면 중복 항목을 찾았습니다.
  • 숫자를 문자열로 결합하고 중복된 숫자를 정규식과 일치시키려고 할 수 있습니다.

이 시점에서 "어떤 것이 가장 좋은가"는 중요하지 않습니다.

걱정하지 마세요!

지금 중요한 것은 작동하는 솔루션을 얻는 것입니다. 당신에게 좋은 소리를 선택하고 그것에 대한 코드를 작성하십시오.

:

<미리>본 =[]numbers.each_with_object([]) |n, dups| dups <

이것이 올바른 해결책인 것 같습니다.

지금 :

이것이 실제로 작동하는지 확인하기 위해 다른 입력(다른 배열)을 시도하고 싶을 때 단위 테스트를 작성하는 것이 좋습니다.

솔루션이 100% 작동하는 경우 다른 솔루션을 시도하고 더 이해하기 쉬운 솔루션을 사용할 수 있습니다.

완벽함을 추구하지 마세요.

매일 배우고, 이해하고, 발전하는 모습을 찾으세요!

도전 2:유효한 단어

문자 배열과 한 단어가 주어지면 이 문자로 단어를 만들 수 있는지 알아보세요.

:

단어 ="주황색"문자 =%w(e ng a r o)valid_word?(문자, 단어)# true

다시 우리는 사고 과정을 지시하는 질문으로 시작합니다.

"이 문자로 단어를 만들 수 있는지 어떻게 확인할 수 있습니까?"

아이디어를 생각해 보세요.

주의를 산만하게 하는 것들을 치우고 그것에 대해 생각해 보세요.

종이에 작성하는 것이 도움이 될 수 있습니다. .

내 아이디어:

  • word의 모든 문자에 대해 , characters에서 해당 문자를 제거합니다. 배열, 모든 문자를 제거할 수 없으면 false를 반환합니다.
  • word의 모든 문자 계산 &characters , 다음 카운트 빼기

가능한 해결책은 다음과 같습니다. :

단어 .each_char .all? { |ch| Characters.delete_at(characters.index(ch)) 구조 없음 }

당신의 솔루션은 무엇입니까?

댓글 섹션에서 공유하세요.

요약

코딩 문제와 이를 사용하여 Ruby 기술을 향상시키는 방법에 대해 배웠습니다!

기억 :

특정 과제를 해결하지 못해도 완벽합니다. 비디오 게임 보스처럼 생각하세요. 보스가 레벨 100이고 당신이 레벨 70이라면 이 보스를 이기기가 정말 어려울 것입니다.

이 경우 어떻게 합니까?

레벨업 및 더 쉬운 도전 경험으로 이동합니다. (낮은 레벨 보스), 그리고 더 나은 장비를 얻습니다. (Ruby 및 프로그래밍에 대해 자세히 알아보기).

행운을 빕니다! 🙂