눈이 내리자
코드 출현 2015 25일차
1 부
우선 사진을 좀 더 봐야겠네요
2017 Day 3's spiral puzzle 과 유사하게 기본 행 및 열 방정식을 식별하고 확인할 수 있도록 이 대각선 패턴을 더 많이 볼 필요가 있습니다.
다이어그램의 슬라이스를 기준으로:
| 1 2 3 4 5 6
---+---+---+---+---+---+---+
1 | 1 3 6 10 15 21
2 | 2 5 9 14 20
3 | 4 8 13 19
4 | 7 12 18
5 | 11 17
6 | 16
이 애니메이션은 위의 패턴을 확인하고 발견하는 것을 보여줍니다.
행, 열, 계산
고맙게도 내 애니메이션은 이것을 계산하는 한 가지 방법을 이해하는 데 도움이 되었습니다.
내 대상 행의 열 1에서 숫자를 찾으려면 다음을 수행하십시오.
Set row as 1
For i from 1 up to but not including the target row
Increment row by i
그런 다음 내 대상 열에서 숫자를 찾으려면 다음을 수행하십시오.
Set column to row
For i from row + 1 up to but not including column plus the target column
Increment column by i
이제 숫자가 있으므로 곱하기, 나누기 및 나머지를 몇 번 수행해야 하는지 알 수 있습니다.
Set code to 20151125
For i from 1 up to but not including column
Set code to the remainder after dividing the product of code and 252533 by 33554393
세 개의 루프가 모두 끝나면 정답이 나와야 합니다!
그리고 내가 그랬어!
off-by-one
오류JavaScript에서 내 작업 알고리즘:
const part1 = (row, col) => {
let x = 1
for (let i = 1; i < row; i++) { x += i }
for (let i = row + 1; i < row + col; i++) { x += i }
let code = 20151125
for (let i = 1; i < x; i++) {
code = code * 252533 % 33554393
}
return code
}
2 부
올해의 마지막 날에 시작하기 때문에 파트 2가 잠금 해제되지 않습니다.
그러나 그것은 49개의 별을 필요로 하는데, 나는 그것을 완전히 획득할 것으로 예상하지 않습니다.
해냈어!
유쾌한 대각선 퍼즐이었습니다!
2017년의 나선형 방향과 매우 유사한 놀라운 새로운 방향!
Advent of Code의 첫 해에도 계속해서 새로운 퍼즐을 찾을 수 있기를 바랍니다.
Reference
이 문제에 관하여(눈이 내리자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rmion/let-it-snow-15d0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)