Javascript 알고리즘 도전 | 섹션 1

이것은 내가 쓰고자 하는 시리즈의 시작이다. 이 시리즈는 자바스크립트로 도전적인 언어를 인코딩하는 방법과 그것을 해결하는 방법을 소개할 것이다.

왜 또 이 문장을 읽으려고 합니까?


만약 네가 우수한 프로그래머가 되려고 한다면, 나는 감히 내기를 걸겠다. 너희들 중 일부는 미래에 일자리를 찾을 계획이다.당신이 일자리를 얻었을 때, 면접과 가능한 인코딩 도전을 포함한 과정을 거쳐야 한다.어떤 것은 회사의 백판 위에 놓을 수도 있고, 집 컴퓨터에 놓을 수도 있다.회사는 일반적으로 다음과 같은 유형의 테스트를 진행합니다.
  • 이것은 당신이 자신의 프로그래밍 논리를 알고 있음을 나타낸다
  • 비판적 사고력이 있음을 나타낸다
  • 스트레스 속에서 일하는 법을 보여준다
  • 인코딩하는 방법을 회사에 보여주는 것뿐이다
  • 따라서 알고리즘을 이해하고 더 잘 작성하는 것은 좋습니다. 왜냐하면 회사에서 당신이 이 알고리즘을 작성하기를 원할 수도 있기 때문입니다.
    따라서 저는 일련의'Javascript 알고리즘 도전'을 시작하기로 결정했습니다. 여기서 저는 서로 다른 도전을 제기하고 이를 어떻게 해결하는지 보여 드리겠습니다.

    선결 조건


    Node를 사용합니다.js에서 Javascript 코드를 실행하기 때문에 계속하기 전에 설치해야 합니다.
    나는 본문을 위해 요점을 하나 만들었다. 이렇게 하면 너는 신속하게 입문할 수 있다.이것은 다음과 같습니다.
    /*
    Author: Martin Nordström
    Created: 2018/03/09 
    Keep coding!
    */
    
    // REVERSE A STRING CHALLENGE
    // Return string in reverse
    function reverseString(str) {}
    
    // PALINDROME CHALLENGE
    // Return true if palindrome and false if not
    function isPalindrome(str) {}
    
    노드가 있을 때.js가 설치되었고 Gist가 다운로드되었으니 시작할 수 있습니다!:-)

    도전 — 문자열 반전


    이 도전은 매우 간단하기 때문에, 나는 몇 가지 해결 방법을 소개할 것이다. 이렇게 하면 너는 많은 다른 방법이 같은 결과를 실현할 수 있다는 것을 알 수 있다.다음을 시작합니다.function reverseString(str) {}우리가 할 수 있는 첫 번째 일은 새로운 변수를 만들고 split() 에 전달되는 문자열로 설정하는 것이다.split() 문자열을 그룹으로 변환하고 구분자의 인자를 받아들일 수 있기 때문이다.우리는 모든 문자를 자신의 그룹 값에 두기를 원하기 때문에, 매개 변수를 '' 로 설정하기만 하면 된다.다음과 같이 표시됩니다.
    function reverseString(str) {
      const strArray = str.split('');
    }
    
    그리고 우리는 수조의 원형 방법인 Reverse () 를 사용할 수 있다. 그것은 수조만 반전시킬 뿐이다.현재 값을 덮어씁니다.function reverseString(str) {
    const strArray = str.split('');
    strArray.reverse();
    }
    이 점을 테스트하기 위해서, 우리는 이 함수를 호출하여 문자열을 전송할 수 있으며, 이것이 우리에게 무엇을 가져다 줄지 볼 수 있다.우리는 함수의 밑에 하나 console.log() 를 놓는 것을 잊지 말아야 한다.
    function reverseString(str) {
      const strArray = str.split('');
      strArray.reverse();
      console.log(strArray);
    }
    reverseString('Hello Medium');
    // Output:
    [ 'm', 'u', 'i', 'd', 'e', 'M', ' ', 'o', 'l', 'l', 'e', 'H' ]
    
    현재 우리는 상반된 순서로 그룹을 얻을 수 있으며, 일반적인 문자열로 되돌릴 수 있다.우리는 이 점을 join() 로 실현할 수 있다. 이것은 그룹의 요소를 문자열에 연결하고 이 문자열을 되돌려준다.우리도 split()처럼 구분자를 지정할 수 있다.join() 방법을 적용한 새로운 문자열을 되돌려줍니다.코드는 다음과 같습니다.
    function reverseString(str) {
      const strArray = str.split('');
      strArray.reverse();
      return strArray.join('');
    }
    reverseString('hello');
    // Output: muideM olleH
    
    이것은 매우 좋지만, 확실히 매우 혼란스럽다.솔직히 말하면, 우리는 심지어strarray 변수가 필요하지 않다!우리가 할 수 있는 일은 다음과 같이 이 방법들을 연결시키는 것이다.
    function reverseString(str) {
      return str.split('').reverse().join('');
    }
    reverseString('Hello Medium');
    // Output: muideM olleH
    
    우리도 이런 방법을 사용하지 않고 낡은 FOR 순환을 사용할 수 있다.이 예에서 우리는 체감 For 순환을 사용할 것이다.
    우리가 해야 할 첫 번째 일은 새 변수를 만드는 것입니다. 이 변수는 빈 문자열을 포함하고, 이 문자열은 새로 만든 문자열을 불러옵니다.
    function reverseString(str) {
      let revString = "";  
    }
    
    두 번째 단계는 실제 for 순환을 만드는 것입니다.str 길이를 사용할 것입니다. 그러나 다음과 같습니다. str.length — 1 문자열의 마지막 자모에 대응하기 때문입니다.우리의 예에서 "m".우리는 i이 0보다 크거나 같으면 매번 교체된 후에 i를 줄일 것이다.그리고 newString 변수를 자신과 그룹의 색인 값str에 추가합니다.우리는 반드시 반환해야 한다revString.
    function reverseString(str) {
      let revString = "";
    
      for (let i = str.length - 1; i >= 0; i--) {
        revString += str[i];
      }
    
      return revString;
    
    }
    reverseString('Hello Medium');
    // Output: muideM olleH
    
    축하합니다!이제 자바스크립트에서 문자열을 반전시키는 두 가지 방법을 알게 되었습니다!

    도전2 - 회문


    우선, 회문은 한 단어나 단어로 앞이든 뒤든 모두 같다.몇 가지 예:
  • 안나
  • A but tuba
  • 우리 순결하지 않아요?"아니요, 선생님!"파나마의 무디 노레가가 허풍을 떨었다."이거 쓰레기야!"풍자는 한 사람의 운명을 정해 놓았다.신세대 죄수
  • 그래서 우리가 해야 할 일은 단어나 단어가 회문이면true를 되돌려주고, 회문이 아니라면false를 되돌려주는 것이다.아주 간단한 물건!
    이것은 우리의 시작 코드 블록입니다.function isPalindrome(str) {}우리가 할 수 있는 첫 번째 일은 문자열을 반전시키고 그 값을 변수로 설정하는 것이다. 왜냐하면 우리는 이 일을 어떻게 하는지 알고 있기 때문이다. 이것은 매우 쉽다.나는 우리의 첫 번째 해결 방안을 사용할 것이다. 왜냐하면 그것은 가장 실용적이기 때문이다.
    function isPalidrom(str) {
      const revString = str.split('').reverse().join('');
    }
    
    회문은 앞과 뒤가 같기 때문에, 우리는 두 개의 서로 다른 문자열이 같은지 검사할 수 있다.
    function isPalidrom(str) {
      const revString = str.split('').reverse().join('');
    
      return revString === str;
    }
    
    우리는 코드를 약간 정리할 수도 있고, 당연히 함수를 호출하여 문자열을 전송할 수도 있다.
    function isPalidrom(str) {
      return str === str.split('').reverse().join('');
    }
    isPalidrom('Hello Medium');
    // Output: false
    
    보시다시피 이것은 false로 돌아갈 것입니다. 왜냐하면'헬로 미디어'는palidrom이 아니기 때문입니다!그런데 "저희는 순결하지 않습니까?"아니요, 선생님.파나마의 무디 노레가가 허풍을 떨었다."이거 쓰레기야!"풍자는 한 사람의 운명을 정해 놓았다.《신시대의 죄수》는!
    function isPalidrom(str) {
      return str === str.split('').reverse().join('');
    }
    isPalidrom('Are we not pure? “No sir!” Panama’s moody Noriega brags. “It is garbage!” Irony dooms a man; a prisoner up to new era');
    // Output: true
    
    쪽지 한 장 생각!만약 우리가 rAceCar 를 입력한다면, 그것은false로 되돌아갈 것이다. 왜냐하면 우리는 대문자 C? and a capital a`가 있기 때문이다.하지만 걱정 마세요. 복구는 간단해요!
    function isPalidrom(str) {
    str = str.toLowerCase();
    return str === str.split('').reverse().join('');
    }
    isPalidrom('Are we not pure? “No sir!” Panama’s moody Noriega brags. “It is garbage!” Irony dooms a man; a prisoner up to new era');
    // Output: true

    Here we are just making the string to be lowercase and then compare them two.

    Congratulations again! You now know how to check after palindromes with Javascript as well!

    마지막 한마디

    I hope you found this helpful. This is the first part of my “Javascript Algorithms Challenges” series. I will try to find more fun and instructive challenges. So please follow me here or on my other social media platforms to get news about the upcoming articles!

    목표

    I have many goals this year. The most important one is to become a better developer in general, but also reach 100 followers on Medium and publish more content here that will help others to learn new things. Knowledge is power!

    Martin Nordström

    | | Github

    This article was originally posted on Medium. If you want to check it out there, follow this link: Original Article

    좋은 웹페이지 즐겨찾기