당신이 레지스터를 좋아한다고 들었어

코드 출현 2017 8일차



퍼즐 입력을 사용하여 시뮬레이터를 사용해보십시오!





1 부


  • 한 거인 reduce() ...?
  • 2개switch 문 포함

  • 하나의 거대한 reduce() ...?



    지침에 따라 다음을 수행해야 합니다.

    compute the result of a series of unusual register instructions



    완료되면 다음을 찾으십시오.

    the largest value in any register after completing the instructions



    나는 모든 것을 다음과 같은 알고리즘으로 해석합니다.

    Return the largest number from
      The list of values associated with keys in a dictionary
        That has been accumulated from a list of instructions
    


    JavaScript에서는 다음과 같이 표시됩니다.

    return Math.max(
      ...Object.values(
        input.reduce((accumulator, current) => {
          // Process each instruction
          // Make sure keys exist in the accumulating object
          // And that they start with the value 0
          // Update and return the accumulating object
        }, {})
      )
    )
    


    두 개의 switch 문으로



    첫 번째switch> , < , >= , <= , == , !=
    두 번째는 inc , dec를 처리합니다.

    입력 패턴의 청사진은 다음과 같습니다.

    xhe       dec        -173   if vhu       >           98
    registerA updates-by amount if registerB compares-to number
    


  • 수정할 레지스터
  • 해당 레지스터 값의 증가 또는 감소 여부
  • 증가 또는 감소할 양
  • 그리고 항상 왼쪽에 레지스터가 있고 오른쪽에 숫자가 있는 조건
  • switch 하나는 compares-to에 연결됩니다.

    Set a flag as false
    Depending on what compares-to is:
      Update flag to whether the value stored in registerB as compared to number is true or false
    

    switch 두 개는 flag가 true이고 updates-by에 달려 있는 경우에만 실행됩니다.

    Depending on what updates-by is:
      Increment or decrement the value stored in registerA by amount
    


    내 알고리즘 테스트:
  • 예제 입력에서 작동했습니다!
  • 내 퍼즐 입력에 효과가 있었습니다!

  • 2 부



    reduce() 이제 두 가지!


  • 1부에서 myreduce()가 객체만 축적
  • 이제 2요소 배열을 누적해야 합니다. 첫 번째 요소는 파트 1의 동일한 객체이고 두 번째 요소는 최대값을 저장할 숫자입니다
  • .

    지침에 따라 개체를 업데이트한 후 이제 다음을 수행해야 합니다.

    Determine the maximum value among each of the stored values in the object, stored as max
    If max is greater than the value currently stored in the second element of the accumulating array
      Update the second element to equal max
    


    JavaScript에서는 다음과 같이 표시됩니다.

    return input.reduce((accumulator, current) => {
          // Process each instruction
          // Make sure keys exist in the accumulating object
          // And that they start with the value 0
          // Update and return the accumulating object
          // Update the max value if a new one exists
        }, [{},0])
      )
    )
    


    프로그램이 끝날 때까지 maxthe highest value held in any register during this process를 저장해야 합니다.

    내 알고리즘 테스트:
  • 예제 입력에서 작동했습니다!
  • 내 퍼즐 입력에 효과가 있었습니다!

  • 해냈어!!


  • 두 부분 모두 해결했습니다!
  • 하나의 reduce() , 몇 개의 switch 문 및 Math !
  • 나는 built a simulator 물체가 쌓이는 것을 지켜본다!
  • 좋은 웹페이지 즐겨찾기