μκ³ λ¦¬μ¦μ νλ©΄μ κΈ°μ΅ν΄λλ©΄ μ’μλ§ν μ½λλ₯Ό κΈ°λ‘νλ€.
πΊ μν© μ€λͺ
κ³ μμ΄κ° μνμ’μ°λ‘ Lλ§νΌ μ΄λν λ λ²μ λ°μΌλ‘ μ΄λνλ€λ©΄ μ΄λλ°©ν₯μ λ°λλ‘ λ°κΎΌ ν μ΄λμ κ³μ μ§ννλ€.
λ§μ½ Lμ κ°μ΄ 10μ΅μΌ λ forλ¬Έμ 10μ΅ λ² λλ € κ³ μμ΄κ° μ΄λνκ² λλ μμΉλ₯Ό μ νλ κ²μ λΉν¨μ¨μ μ΄λ©° μκ°μ΄κ³Όκ° λ°μνλ€.
κ³ μμ΄μ μμΉλ₯Ό λ°λ³΅λ¬Έμ΄ μλ μμ μ΄μ©ν΄μ ꡬν΄λ³΄μ.
πΉοΈ ꡬν λ°©λ²
πΉ μ€λ₯Έμͺ½μΌλ‘ μ΄λν λ
4x6μ νμμ νμ¬ κ³ μμ΄λ (2, 2)μ μμΉν΄ μλ€.
κ³ μμ΄κ° λ§μ½ 3μΉΈ μ΄λνλ©΄ λ²μμ λ²μ΄λμ§ μλλ€.
νμ§λ§ μ€λ₯Έμͺ½μΌλ‘ 7μΉΈ μ΄λν λ λ²μλ₯Ό λ²μ΄λκ² λλ€.
λ€μ μ΄λνλ €λ μΉΈμ΄ λ²μμ λ²μ΄λλ€λ©΄ λ°©ν₯μ λ°λλ‘ λ°κΏ μ΄λνκ³ , μ΅μ’ μ μΌλ‘ (2, 1)μ μμΉνκ² λλ€.
12μΉΈ μ΄λνλ©΄ λμΌν λ°©λ²μΌλ‘ (2, 4)μ μμΉνκ² λλ€ .
κ·μΉμ μ°Ύμ보면, κ³ μμ΄λ
μ€λ₯Έμͺ½μΌλ‘ μ΄λ β ( (2, 6)μ λ²μλ₯Ό λ²μ΄λ¨ π λ°©ν₯ μ ν) β μΌμͺ½μΌλ‘ μ΄λ β ( (2, -1)μ λ²μλ₯Ό λ²μ΄λ¨ π λ°©ν₯ μ ν) β μ€λ₯Έμͺ½μΌλ‘ μ΄λ π λ€μ μ μ리
μ΄λ° μ¬μ΄ν΄μ λ°λ³΅νκ² λλ€.
μμ κ°μ΄ νλμ μ¬μ΄ν΄μ 2*(6-1)=10λ§νΌ μ΄λν΄μ μ μ리μ λμμ€λ©° μΌλ°νμΌλ‘ 2*(M-1)
(Mμ κ°λ‘ κΈΈμ΄)λ‘ μμ±ν μ μλ€.
κ·Έλ¬λ―λ‘ νλμ μ¬μ΄ν΄μ μ΄λ μλ³΄λ€ ν¨μ¬ λ λ§μ΄(dλ§νΌ) μ΄λνκ² λλ€λ©΄ κ³ μμ΄μ μμΉλ λλ¨Έμ§ μ°μ°μλ₯Ό νμ©ν΄ d%(2*(M-1))
λ‘ λνλΌ μ μλ€.
μμμ 12μΉΈλ§νΌ μ΄λν κ²μ μλ‘ λ€μ΄λ³΄λ©΄, 12%(2*(M-1)) = 2 μ κ³μ° κ²°κ³Όκ° λμ€λ―λ‘ κ³ μμ΄λ 2μΉΈ μ΄λνκ² λμ΄ (2, 4)μ μμΉνλ€.
μ½λλ‘ μμ±ν΄λ³΄μ.
N x Mμ μΉΈμμ νμ¬ κ³ μμ΄μ μμΉλ (x, y)μ΄λ©° dμΉΈλ§νΌ μ€λ₯Έμͺ½μΌλ‘ μ΄λν κ²μ΄λ€.
νμ¬ μμΉ κΈ°μ€μΌλ‘ μ€λ₯Έμͺ½μ λ¨μ μΉΈμ κ°μλ M-y-1
κ°μ΄λ€.
κ³ μμ΄λ νμ¬ μμΉμμ int dist = d%(2*(M-1))
λ§νΌ μ΄λν κ²μ΄λ€.
λ§μ½ μ€λ₯Έμͺ½μ λ¨μ μΉΈμ κ°μκ° distλ³΄λ€ μλ€λ©΄ π (M-y-1)<dist
λ²μλ₯Ό λμ΄κ°κ² λλ―λ‘ ifλ¬Έμ νμ©ν΄ λ°λλ°©ν₯μΌλ‘ μ΄λν μμΉλ₯Ό ꡬνλ€.
λ¨μ μΉΈμ κ°μκ° distλ³΄λ€ ν¬λ€λ©΄ νμ¬ κ³ μμ΄μ μμΉμμ distλ§νΌ λν΄μ£Όλ©΄ λλ€. π y+=dist
μμ κ·Έλ¦Όμμ 4μΉΈ μ€λ₯Έμͺ½μΌλ‘ μ΄λνλ©΄ 3μΉΈμ μ΄λνλ€κ° λ§μ§λ§ 1μΉΈμ λ°λλ°©ν₯μΌλ‘ λ°κΏ μ΄λνκΈ° λλ¬Έμ dist-=(M-y-1)
λ§νΌ λ°λλ°©ν₯μΌλ‘ μ΄λνλ κ²μΌλ‘ κ³μ°νλ©΄ λλ€. κ³μ°λ distλ λ²μλ₯Ό λ²μ΄λμ§ μμΌλ―λ‘ κ³ μμ΄μ μμΉλ y=(M-1-dist)
κ° λλ€.
κ·Έλ¬λ distκ° μΌμͺ½μΌλ‘ μ΄λνλ©΄μ λ λ²μλ₯Ό λ²μ΄λ μ μλ€.
μλ₯Ό λ€μ΄, 29μΉΈ μ΄λνλ©΄ νμ¬ μμΉμμ 29%(2*(6-1)) = 9μΉΈλ§νΌ μ΄λνκ³ dist-=(M-y-1)
κ³μ° κ²°κ³Ό, 6μΉΈ λ§νΌ λ°λλ°©ν₯μΌλ‘ μ΄λνλ€. νμ§λ§ μΌμͺ½μΌλ‘ 6μΉΈ μ΄λνλ©΄ λ²μλ₯Ό λ²μ΄λκ² λλ€. π (M-1 < dist)
μ΄λ΄ κ²½μ°μλ dist-= (M-1)
λ‘ κ³μ°νμ¬ κ³ μμ΄λ y=dist
μμΉλ‘ μ΄λνκ² λλ€.
// μ€λ₯Έμͺ½ μ΄λ
public static Node moveRight(int x, int y, int d) {
int dist = d%(2*(M-1));
//νμ¬ μμΉ κΈ°μ€ μ€λ₯Έμͺ½μ λ¨μ μΉΈ = M-y-1
if(M-y-1<dist) {
dist-=M-y-1;
if(M-1<dist) {
dist-=M-1;
y = dist;
}else y = M-1-dist;
}else y+=dist;
return new Node(x, y);
}
λλ¨Έμ§ μ, μ’, νλ κ°μ λ°©μμΌλ‘ μ§ννλ©΄ λλ€.
π©π» μ 체 μ½λ
// μ€λ₯Έμͺ½ μ΄λ
public static Node moveRight(int x, int y, int d) {
int dist = d%(2*(M-1));
//νμ¬ μμΉ κΈ°μ€ μ€λ₯Έμͺ½μ λ¨μ μΉΈ = M-y-1
if(M-y-1<dist) {
dist-=M-y-1;
if(M-1<dist) {
dist-=M-1;
y = dist;
}else y = M-1-dist;
}else y+=dist;
return new Node(x, y);
}
// μΌμͺ½ μ΄λ
public static Node moveLeft(int x, int y, int d) {
int dist = d%(2*(M-1));
//νμ¬ μμΉ κΈ°μ€ μΌμͺ½μ λ¨μ μΉΈ = y
if(y<dist) {
dist-=y;
if(M-1<dist) {
dist-=M-1;
y = M-1-dist;
}else y = dist;
}else y-=dist;
return new Node(x, y);
}
// μλμͺ½ μ΄λ
public static Node moveDown(int x, int y, int d) {
int dist = d%(2*(N-1));
//νμ¬ μμΉ κΈ°μ€ μλμͺ½μ λ¨μ μΉΈ = N-x-1
if(N-x-1<dist) {
dist-=N-x-1;
if(N-1<dist) {
dist-=N-1;
x = dist;
}else x = N-1-dist;
}else x+=dist;
return new Node(x, y);
}
// μμͺ½ μ΄λ
public static Node moveUp(int x, int y, int d) {
int dist = d%(2*(N-1));
//νμ¬ μμΉ κΈ°μ€ μμͺ½μ λ¨μ μΉΈ = x
if(x<dist) {
dist-=x;
if(N-1<dist) {
dist-=N-1;
x = N-1-dist;
}else x=dist;
}else x-=dist;
return new Node(x, y);
}
μ°Έκ³ λ¬Έμ
μ½λνΈλ¦¬ | μ½λ©ν μ€νΈ μ€λΉλ₯Ό μν μκ³ λ¦¬μ¦ μ μ
κ΅κ°λνκ° λ§λ μ½λ© 곡λΆμ κ°μ΄λλΆ μ½λ© μμ΄λ³΄λΆν° κΏμ μ§μ₯ μ½ν ν©κ²©κΉμ§, κ΅κ°λνκ° μμ ν 컀리νλΌμΌλ‘ μ€λΉν΄λ³΄μΈμ.
www.codetree.ai
'μκ³ λ¦¬μ¦ > ποΈ μ 리' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
π λ¬ν½μ΄ μ΄λ ν¨μ¨μ μΈ μ½λ π (0) | 2024.03.30 |
---|---|
LCS (μ΅μ₯ κ³΅ν΅ λΆλΆ μμ΄) (0) | 2024.03.11 |
Topological Sort (μμμ λ ¬) (1) | 2024.02.27 |
Simulation - 2μ°¨μ λ¬ν½μ΄ λ°°μ΄ π (0) | 2024.02.08 |
DP - Knapsack (λ°°λλ¬Έμ ) (1) | 2024.02.05 |