터보건 궤적
코드 출현 2020 3일차
시뮬레이터를 사용해보십시오!
작업: X에 대해 풀기 여기서...
X = the number of trees hit for each of N trajectories
예시 입력
..##.......
#...#...#..
.#....#..#.
..#.#...#.#
.#...##..#.
..#.##.....
.#.#.#....#
.#........#
#.##...#...
#...##....#
.#..#...#.#
다음을 나타냅니다.
1 부
modulo
를 사용하여 이 모델올바른 정신 모델 식별
..##.........##.........##.........##.........##.........##.......
#...#...#..#...#...#..#...#...#..#...#...#..#...#...#..#...#...#..
.#....#..#..#....#..#..#....#..#..#....#..#..#....#..#..#....#..#.
..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#
.#...##..#..#...##..#..#...##..#..#...##..#..#...##..#..#...##..#.
..#.##.......#.##.......#.##.......#.##.......#.##.......#.##.....
.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#
.#........#.#........#.#........#.#........#.#........#.#........#
#.##...#...#.##...#...#.##...#...#.##...#...#.##...#...#.##...#...
#...##....##...##....##...##....##...##....##...##....##...##....#
.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#
북서쪽에서 남동쪽으로의 경로는 다음과 같습니다.
-
-
-
-
-
-
-
-
-
-
-
-
하지만 이 문제에 대한 비결은 정신 모델에서 나선형 계단 또는 원통형 모델로 전환하는 것입니다.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
모듈로를 사용하여 이 모델 구현
O.##.......
#..O#...#..
.#....X..#.
..#.#...#O#
.X...##..#.
..#.X#.....
.#.#.#.O..#
.#........X
#.X#...#...
#...#X....#
.#..#...X.#
-
-
-
-
-
-
-
-
-
-
-
0
3
6
9
1
4
7
10
2
5
8
Modulo
는 한 값을 다른 값으로 나눈 후 나머지를 계산합니다.9 % 11 == 9
(9 + 3) % 11 == 12 % 11 == 1
짜잔! 모듈로, 라인 길이, 현재 인덱스 및 적절한 오프셋을 사용하면 각 반복에서 올바른 수평 위치를 얻을 수 있습니다.
작동하는 알고리즘 작성
Split the input at each new-line character into an array of strings
Split each string into an array of characters
Set variables for row, col and hits...all starting at 0
As long as the location in the processed input at row exists
Increment hits by 1 if the value at the row and column is a #
Increment row by 1
Update col to equal the remainder after dividing the sum of col and 3 by the length of the nested array
Return the value stored in hits
2 부
범위 크립 이해
업데이트된 작업 알고리즘 작성
Split the input at each new-line character into an array of strings
Split each string into an array of characters
Set an array with five 2-element arrays to represent each trajectory
For each trajectory
Change the 2-element array into the number of hits encountered by following these operations:
Set variables for row, col and hits...all starting at 0
As long as the location in the processed input at row exists
Increment hits by 1 if the value at the row and column is a #
Increment row by the value at location 1 from the original 2-element array
Update col to equal the remainder after dividing the sum of col and the value at location 2 from the original 2-element array by the length of the nested array
Return the product after multiplying each value together
시뮬레이터 구축
Try the simulator!
고맙게도 2021년의 일부 퍼즐에서 이 나선형 알고리즘을 만났습니다.
따라서 이 퍼즐은 특히 해결하기 쉬웠습니다.
Reference
이 문제에 관하여(터보건 궤적), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rmion/toboggan-trajectory-2e2g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)