Advertisement
exmkg

1-6

Jan 14th, 2025
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.45 KB | None | 0 0
  1. class Solution {
  2.     public int finalPositionOfSnake(int n, List<String> commands) {
  3.         int number = 0;
  4.         for (String command : commands) {
  5.             if (command.equals("UP")) {
  6.                 number -= n;
  7.             } else if (command.equals("DOWN")) {
  8.                 number += n;
  9.             } else if (command.equals("RIGHT")) {
  10.                 number++;
  11.             } else if (command.equals("LEFT")) {
  12.                 number--;
  13.             }
  14.         }
  15.         return number;
  16.  
  17.         // row = 0, col = 0..2 => indices 0..2 (indices start from 3 * row = 3 * 0 = 0)
  18.         // row = 1, col = 0..2 => indices 3..5 (indices start from 3 * row = 3 * 0 = 0)
  19.         // row = 2, col = 0..2 => indices 6..8 (indices start from 3 * row = 3 * 0 = 0)
  20.  
  21.         // row =   0, col = 0..n-1 => indices       0 ..  n-1
  22.         // row =   1, col = 0..n-1 => indices       n .. 2n-1
  23.         // row =   2, col = 0..n-1 => indices      2n .. 3n-1
  24.         // ...
  25.         // row = n-1, col = 0..n-1 => indices (n-1)*n .. (n*n)-1  
  26.  
  27.         // 0-th row, 0-th col       => 0
  28.         // 0-th row, 1-st col       => 1
  29.         // 0-th row, 2-nd col       => 2
  30.         // 0-th row, 3-rd col       => 3
  31.         // ...
  32.         // 0-th row, (n - 1)-th col => n - 1
  33.  
  34.         // 1-st row, 0-th col       => n
  35.         // 1-st row, 1-st col       => n + 1
  36.         // 1-st row, 2-nd col       => n + 2
  37.         // 1-st row, 3-rd col       => n + 3
  38.         // ...
  39.         // 1-st row, (n - 1)-th col => 2 * n - 1
  40.  
  41.         // ...
  42.  
  43.         // (n - 1)-th row, 0-th col       => (n - 1) * n
  44.         // (n - 1)-th row, 1-st col       => (n - 1) * n + 1
  45.         // ...
  46.         // (n - 1)-th row, (n - 1)-th col => n * n - 1
  47.     }
  48. }
  49.  
  50.  
  51.  
  52.  
  53. class Solution {
  54.     public int finalPositionOfSnake(int n, List<String> commands) {
  55.         int row = 0;
  56.         int col = 0;
  57.         for (String command : commands) {
  58.             if (command.equals("UP")) {
  59.                 row--;
  60.             } else if (command.equals("DOWN")) {
  61.                 row++;
  62.             } else if (command.equals("RIGHT")) {
  63.                 col++;
  64.             } else if (command.equals("LEFT")) {
  65.                 col--;
  66.             }
  67.         }
  68.         return row * n + col;
  69.  
  70.         // row = 0, col = 0..2 => indices 0..2 (indices start from 3 * row = 3 * 0 = 0)
  71.         // row = 1, col = 0..2 => indices 3..5 (indices start from 3 * row = 3 * 0 = 0)
  72.         // row = 2, col = 0..2 => indices 6..8 (indices start from 3 * row = 3 * 0 = 0)
  73.  
  74.         // row =   0, col = 0..n-1 => indices       0 ..  n-1
  75.         // row =   1, col = 0..n-1 => indices       n .. 2n-1
  76.         // row =   2, col = 0..n-1 => indices      2n .. 3n-1
  77.         // ...
  78.         // row = n-1, col = 0..n-1 => indices (n-1)*n .. (n*n)-1  
  79.  
  80.         // 0-th row, 0-th col       => 0
  81.         // 0-th row, 1-st col       => 1
  82.         // 0-th row, 2-nd col       => 2
  83.         // 0-th row, 3-rd col       => 3
  84.         // ...
  85.         // 0-th row, (n - 1)-th col => n - 1
  86.  
  87.         // 1-st row, 0-th col       => n
  88.         // 1-st row, 1-st col       => n + 1
  89.         // 1-st row, 2-nd col       => n + 2
  90.         // 1-st row, 3-rd col       => n + 3
  91.         // ...
  92.         // 1-st row, (n - 1)-th col => 2 * n - 1
  93.  
  94.         // ...
  95.  
  96.         // (n - 1)-th row, 0-th col       => (n - 1) * n
  97.         // (n - 1)-th row, 1-st col       => (n - 1) * n + 1
  98.         // ...
  99.         // (n - 1)-th row, (n - 1)-th col => n * n - 1
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement