-
๐ 1. ๋ฌธ์ ์ค๋ช
-
๐ก 2. ์ ๊ทผ๋ฐฉ์
-
dp[][] ๋ฐฐ์ด ์ ์ธ
-
2-1. ์ฒซ ๋ฒ์งธ ๋จ๊ณ: ์ฒซ ๋ฒ์งธ ์ค ๊ฐ ์ฑ์ฐ๊ธฐ (dp[0][0] = triangle[0][0])
-
2-2. ๋ ๋ฒ์งธ ๋จ๊ณ: dp ๋ฐฐ์ด์ ๊ฐ ์ฑ์ฐ๊ธฐ (dp[i][0] = dp[i-1][0] + triangle[i][0])
-
2-3. ์ธ ๋ฒ์งธ ๋จ๊ณ: ์์ชฝ๊ณผ ์ผ์ชฝ์์ ์ค๋ ๊ฐ์ ๋น๊ตํ์ฌ ์ต๋๊ฐ์ ๋ํ๊ธฐ
-
๐จโ๐ป 3. ์ ๋ต์ฝ๋
-
๐ฆ 4. TMI
๐ 1. ๋ฌธ์ ์ค๋ช

๐ก 2. ์ ๊ทผ๋ฐฉ์
ํ์ด๋ฐฉ๋ฒ
1. dp[][] ๋ฐฐ์ด ์ ์ธ
2. ์ฒซ ๋ฒ์งธ ์ค ๊ฐ ์ฑ์ฐ๊ธฐ (dp[0][0] = triangle[0][0])
2. ์ผ์ชฝ ์ฒซ๋ฒ์งธ ์ด์ธ dp[i][0] ๊ฐ์ ์ด์ ์ค์ ์ฒซ ๋ฒ์งธ ๊ฐ๋ผ๋ฆฌ ๋ํด์ ์
๋ ฅํ๋ค. (dp[i][0] = dp[i-1][0] + triangle[i][0])
3. ๊ทธ ์ธ์ ๊ฐ๋ค์ ์์ชฝ๊ณผ ์ผ์ชฝ์์ ์ค๋ ๊ฐ์ ๋น๊ตํ์ฌ ์ต๋๊ฐ์ ๋ํ๊ธฐ
(dp[i][j] = Math.max(dp[i-1][j-1], dp[i-1][j]) + triangle[i][j])
์ฆ, ์์ชฝ์์ ์ค๊ฑฐ๋ ์ผ์ชฝ ์์์ ์จ ๊ฐ ์ค ๋ ํฐ ๊ฐ์ ํ์ฌ triangle[i][j] ๊ฐ์ ๋ํ๋ค.
dp[][] ๋ฐฐ์ด ์ ์ธ
๋์ฒ๋ผ ์ํ์ ์ด๋ ค์ํ๋ ์ฌ๋๋ค์ ์ํด ๋ฐฐ์ด์ ๋์ผ๋ก ๋ณด๊ธฐ ์ฝ๊ฒ ์๊ฐํ ํด ๋ณด์๋ค.
์ฝ๋์ ํ๋ฆ์ ๋ฐ๋ผ์ ์์๋๋ก triangle[][] ๋ฐฐ์ด, dp[][] ๋ฐฐ์ด์ ๋ณํ๋ฅผ ํ ํ์์ผ๋ก ๋ํ๋ด๋ ค๊ณ ํ๋ค.

๋จผ์ ๋ฌธ์ ์์ ์ฃผ์ด์ง triangle[][]์ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ์์ ๊ฐ๊ณ , ์ด๊ฒ์ ๋ฐฐ์ด๋ก ์ ํํ ๋ชจ์ต์ด ์๋์ ๊ฐ๋ค.
๋ฐฐ์ด์์ ๊ตณ์ด ์ฐ์ด์ง ์๋์นธ์ ๊ฒ์์์ผ๋ก ํ์ํ์ผ๋ ์์น์ ์ผ๋ก๋ int[][] ๋ฐฐ์ด ์ ์ธ์๊ธฐ๋ณธ๊ฐ์ด 0์ผ๋ก ์ด๊ธฐํ ๋๋ค.

๊ทธ๋ฆฌ๊ณ ์๋๋ ๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ ์ ์ฅํ dp[][] ๋ฐฐ์ด์ ์ด๊ธฐ ์ํ์ด๋ค.

2-1. ์ฒซ ๋ฒ์งธ ๋จ๊ณ: ์ฒซ ๋ฒ์งธ ์ค ๊ฐ ์ฑ์ฐ๊ธฐ (dp[0][0] = triangle[0][0])



2-2. ๋ ๋ฒ์งธ ๋จ๊ณ: dp ๋ฐฐ์ด์ ๊ฐ ์ฑ์ฐ๊ธฐ (dp[i][0] = dp[i-1][0] + triangle[i][0])
์ด์ ์ฌ๊ธฐ์๋ถํฐ ๊ฐ์ ์ฑ์ธ ๋๋ ๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋๊ฒ ๋๋ค.
์ฒซ๋ฒ์งธ ์ด๊ณผ, ๋๋จธ์ง ์นธ์ ์ฑ์ฐ๋ ์ ํ์์ด ๋ค๋ฅด๋ค.
๋จผ์ , ์ฒซ๋ฒ์งธ ์ด์ธ dp[i][0] ๊ฐ์ ์ด์ ์ค์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ํด์ ๊ตฌํ๋ค. (dp[i][0] = dp[i-1][0] + triangle[i][0])
์ ๊ทธ๋ฌ๋์ง ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช
ํ์๋ฉด ์๋์ ๊ฐ๋ค.

์ด๊ฒ์ ์ํํ๋ ์ ํ์์ dp[i][0] = dp[i-1][0] + triangle[i][0] ์ธ๋ฐ ์ด ์ ํ์์ ์๋ฏธ๋ฅผ ์์ฃผ ์ฝ๊ฒ ์ค๋ช
ํด ๋ณด์๋ฉด
๐ ํ์ฌ ์์น (dp[i][0])์ ๊ฐ = dp๋ฐฐ์ด์์ ๋ฐ๋ก ์์นธ์ ์๋ ๊ฐ (dp[i-1][0]) + ํ์ฌ ์ผ๊ฐํ ๊ฐ (triangle[i][0])์ ๋ํ ๊ฒ์ด๋ค.
- dp[i-1][0]: ๋ฐ๋ก ์ ์นธ์ ๊ฐ (์์ค์์ ๋ด๋ ค์จ ๊ฐ)
- triangle[i][0]: ํ์ฌ ์ผ๊ฐํ์ ๊ฐ
- dp[i][0]: ์์์ ๋ด๋ ค์จ ๊ฐ๊ณผ ํ์ฌ ๊ฐ์ ๋ํ ๊ฐ
์๋ํ๋ฉด ๋งจ ์ผ์ชฝ ์ด(j == 0)์ ์ผ์ชฝ์์ ์ค๋ ๊ฐ์ด ์๊ณ ์ค๋ก์ง ์์์ ๋ด๋ ค์ค๋ ๊ฐ๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ๊ฐ ์ค์์ ์์ ์๋ ๊ฐ์ ํ์ฌ ์นธ์ ๊ฐ์ ๋ํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ์ ๊ณผ์ ์ด ์ด๋ฃจ์ด์ง๋ค.








์ฌ๊ธฐ๊น์ง ์ํํ ํ dp[][] ๋ฐฐ์ด์ ์ํ๋ ์๋์ ๊ฐ๋ค.

2-3. ์ธ ๋ฒ์งธ ๋จ๊ณ: ์์ชฝ๊ณผ ์ผ์ชฝ์์ ์ค๋ ๊ฐ์ ๋น๊ตํ์ฌ ์ต๋๊ฐ์ ๋ํ๊ธฐ
์ง๊ธ๊น์ง dp[i][0] ๊ฐ์ ์ด์ ์ค์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ํด์ ๊ตฌํ๊ณ ํ๋ค. ์ฆ, ์ผ์ชฝ ๋ ๊ฐ์ ์ค์ง ์์์ ๋ด๋ ค์ค๋ ๊ฐ๋ง ๊ณ ๋ คํ๋ฉด ๋๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ์ ํ์์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. (dp[i][0] = dp[i-1][0] + triangle[i][0]) ์ด ๋จ๊ณ๋ ๊ทธ ์ธ ๊ฐ์ธ ์ค๊ฐ์ ์๋ ๊ฐ์ ๊ตฌํ๊ธฐ ์ํ ์ ํ์์ด๋ค.
์ค๊ฐ์ ์์นํ ๊ฐ๋ค์ ์์์ ๋ด๋ ค์ค๋ `๋ ๊ฐ์ง ๊ฒฝ๋ก`๊ฐ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์ง๋์ณ์จ ๊ฒฝ๋ก์ ํฉ์ด ๋ ํฐ ๊ฐ์ ์ ํํ์ฌ ์ ์ฅํด์ผ ํ๋ค. ์ฆ, ๊ทธ ์ธ์ ๊ฐ๋ค์ dp[i][j] = Math.max(dp[i-1][j-1], dp[i-1][j]) + triangle[i][j] ์ ํ์์ผ๋ก ์์ชฝ์์ ์ค๊ฑฐ๋ ์ผ์ชฝ ์์์ ์จ ๊ฐ ์ค ๋ ํฐ ๊ฐ์ ํ์ฌ triangle[i][j] ๊ฐ์ ๋ํ๋ค.
์ฆ, dp[i][j] ๊ฐ์ ๋ ๊ฐ์ง ๊ฒฝ๋ก ์ค ๋ ํฐ ๊ฐ์ ์ ํํ๊ณ , ํ์ฌ ์์น์ ๊ฐ์ ๋ํ์ฌ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ๋ง๋ ๋ค. ์ด ๋ฐฉ์์ผ๋ก ๋ง์ง๋ง ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ผ๋ฉด, ์ผ๊ฐํ์ ํ๊ณ ๋ด๋ ค์ค๋ ์ต๋๊ฐ์ ๊ตฌํ ์ ์๋ค.





์ต์ข
dp[][] ๋ฐฐ์ด์์ ๋งจ ์๋ซ์ค์ ์ต๋๊ฐ์ธ 30 ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฆฌํดํ๋ค.
๐จโ๐ป 3. ์ ๋ต์ฝ๋
import java.util.*;
class Solution {
public int solution(int[][] triangle) {
int height = triangle.length; // ์ผ๊ฐํ์ ๋์ด
int[][] dp = new int[height][height]; // ํฉ์ ์ ์ฅํ DP ๋ฐฐ์ด
// 1. ์ฒซ ๋ฒ์งธ ์ค (๋งจ ๊ผญ๋๊ธฐ ๊ฐ)
dp[0][0] = triangle[0][0];
// 2. ์ฒซ ๋ฒ์งธ ์ด ์ฑ์ฐ๊ธฐ (๋งจ ์ผ์ชฝ ๊ฒฝ๋ก)
for (int i = 1; i < height; i++) {
dp[i][0] = dp[i - 1][0] + triangle[i][0];
}
// 3. DP ๋ฐฐ์ด ์ฑ์ฐ๊ธฐ (์ผ์ชฝ ์, ์์ชฝ ๋น๊ต)
for (int i = 1; i < height; i++) {
for (int j = 1; j < triangle[i].length; j++) {
dp[i][j] = Math.max(dp[i-1][j-1], dp[i-1][j]) + triangle[i][j] ;
}
}
// 4. ์ต๋๊ฐ ์ฐพ๊ธฐ (๋ง์ง๋ง ํ์์ ์ต๋๊ฐ)
int answer = 0;
for (int i = 0; i < height; i++) {
answer = Math.max(answer, dp[height - 1][i]);
}
return answer;
}
}
๐ฆ 4. TMI
์ฌ๊ณ ์ถ์ค ใ
ใ
ใ
ํ๊ณ ์ด๋ป๊ฒ ์ค๋ช
ํ ์ง ์๊ฐํ๊ณ
์๋ฃ๋ง๋ค๊ณ ํฌ์คํ
ํ๋๋ฐ 3์๊ฐ ๊ฑธ๋ ธ์น
์ํ์ ๋ชจํฑ

'Algorithm > Programmers_Best' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ 1. ๋ฌธ์ ์ค๋ช

๐ก 2. ์ ๊ทผ๋ฐฉ์
ํ์ด๋ฐฉ๋ฒ
1. dp[][] ๋ฐฐ์ด ์ ์ธ
2. ์ฒซ ๋ฒ์งธ ์ค ๊ฐ ์ฑ์ฐ๊ธฐ (dp[0][0] = triangle[0][0])
2. ์ผ์ชฝ ์ฒซ๋ฒ์งธ ์ด์ธ dp[i][0] ๊ฐ์ ์ด์ ์ค์ ์ฒซ ๋ฒ์งธ ๊ฐ๋ผ๋ฆฌ ๋ํด์ ์
๋ ฅํ๋ค. (dp[i][0] = dp[i-1][0] + triangle[i][0])
3. ๊ทธ ์ธ์ ๊ฐ๋ค์ ์์ชฝ๊ณผ ์ผ์ชฝ์์ ์ค๋ ๊ฐ์ ๋น๊ตํ์ฌ ์ต๋๊ฐ์ ๋ํ๊ธฐ
(dp[i][j] = Math.max(dp[i-1][j-1], dp[i-1][j]) + triangle[i][j])
์ฆ, ์์ชฝ์์ ์ค๊ฑฐ๋ ์ผ์ชฝ ์์์ ์จ ๊ฐ ์ค ๋ ํฐ ๊ฐ์ ํ์ฌ triangle[i][j] ๊ฐ์ ๋ํ๋ค.
dp[][] ๋ฐฐ์ด ์ ์ธ
๋์ฒ๋ผ ์ํ์ ์ด๋ ค์ํ๋ ์ฌ๋๋ค์ ์ํด ๋ฐฐ์ด์ ๋์ผ๋ก ๋ณด๊ธฐ ์ฝ๊ฒ ์๊ฐํ ํด ๋ณด์๋ค.
์ฝ๋์ ํ๋ฆ์ ๋ฐ๋ผ์ ์์๋๋ก triangle[][] ๋ฐฐ์ด, dp[][] ๋ฐฐ์ด์ ๋ณํ๋ฅผ ํ ํ์์ผ๋ก ๋ํ๋ด๋ ค๊ณ ํ๋ค.

๋จผ์ ๋ฌธ์ ์์ ์ฃผ์ด์ง triangle[][]์ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ์์ ๊ฐ๊ณ , ์ด๊ฒ์ ๋ฐฐ์ด๋ก ์ ํํ ๋ชจ์ต์ด ์๋์ ๊ฐ๋ค.
๋ฐฐ์ด์์ ๊ตณ์ด ์ฐ์ด์ง ์๋์นธ์ ๊ฒ์์์ผ๋ก ํ์ํ์ผ๋ ์์น์ ์ผ๋ก๋ int[][] ๋ฐฐ์ด ์ ์ธ์๊ธฐ๋ณธ๊ฐ์ด 0์ผ๋ก ์ด๊ธฐํ ๋๋ค.

๊ทธ๋ฆฌ๊ณ ์๋๋ ๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ ์ ์ฅํ dp[][] ๋ฐฐ์ด์ ์ด๊ธฐ ์ํ์ด๋ค.

2-1. ์ฒซ ๋ฒ์งธ ๋จ๊ณ: ์ฒซ ๋ฒ์งธ ์ค ๊ฐ ์ฑ์ฐ๊ธฐ (dp[0][0] = triangle[0][0])



2-2. ๋ ๋ฒ์งธ ๋จ๊ณ: dp ๋ฐฐ์ด์ ๊ฐ ์ฑ์ฐ๊ธฐ (dp[i][0] = dp[i-1][0] + triangle[i][0])
์ด์ ์ฌ๊ธฐ์๋ถํฐ ๊ฐ์ ์ฑ์ธ ๋๋ ๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋๊ฒ ๋๋ค.
์ฒซ๋ฒ์งธ ์ด๊ณผ, ๋๋จธ์ง ์นธ์ ์ฑ์ฐ๋ ์ ํ์์ด ๋ค๋ฅด๋ค.
๋จผ์ , ์ฒซ๋ฒ์งธ ์ด์ธ dp[i][0] ๊ฐ์ ์ด์ ์ค์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ํด์ ๊ตฌํ๋ค. (dp[i][0] = dp[i-1][0] + triangle[i][0])
์ ๊ทธ๋ฌ๋์ง ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช
ํ์๋ฉด ์๋์ ๊ฐ๋ค.

์ด๊ฒ์ ์ํํ๋ ์ ํ์์ dp[i][0] = dp[i-1][0] + triangle[i][0] ์ธ๋ฐ ์ด ์ ํ์์ ์๋ฏธ๋ฅผ ์์ฃผ ์ฝ๊ฒ ์ค๋ช
ํด ๋ณด์๋ฉด
๐ ํ์ฌ ์์น (dp[i][0])์ ๊ฐ = dp๋ฐฐ์ด์์ ๋ฐ๋ก ์์นธ์ ์๋ ๊ฐ (dp[i-1][0]) + ํ์ฌ ์ผ๊ฐํ ๊ฐ (triangle[i][0])์ ๋ํ ๊ฒ์ด๋ค.
- dp[i-1][0]: ๋ฐ๋ก ์ ์นธ์ ๊ฐ (์์ค์์ ๋ด๋ ค์จ ๊ฐ)
- triangle[i][0]: ํ์ฌ ์ผ๊ฐํ์ ๊ฐ
- dp[i][0]: ์์์ ๋ด๋ ค์จ ๊ฐ๊ณผ ํ์ฌ ๊ฐ์ ๋ํ ๊ฐ
์๋ํ๋ฉด ๋งจ ์ผ์ชฝ ์ด(j == 0)์ ์ผ์ชฝ์์ ์ค๋ ๊ฐ์ด ์๊ณ ์ค๋ก์ง ์์์ ๋ด๋ ค์ค๋ ๊ฐ๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ๊ฐ ์ค์์ ์์ ์๋ ๊ฐ์ ํ์ฌ ์นธ์ ๊ฐ์ ๋ํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ์ ๊ณผ์ ์ด ์ด๋ฃจ์ด์ง๋ค.








์ฌ๊ธฐ๊น์ง ์ํํ ํ dp[][] ๋ฐฐ์ด์ ์ํ๋ ์๋์ ๊ฐ๋ค.

2-3. ์ธ ๋ฒ์งธ ๋จ๊ณ: ์์ชฝ๊ณผ ์ผ์ชฝ์์ ์ค๋ ๊ฐ์ ๋น๊ตํ์ฌ ์ต๋๊ฐ์ ๋ํ๊ธฐ
์ง๊ธ๊น์ง dp[i][0] ๊ฐ์ ์ด์ ์ค์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ํด์ ๊ตฌํ๊ณ ํ๋ค. ์ฆ, ์ผ์ชฝ ๋ ๊ฐ์ ์ค์ง ์์์ ๋ด๋ ค์ค๋ ๊ฐ๋ง ๊ณ ๋ คํ๋ฉด ๋๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ์ ํ์์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. (dp[i][0] = dp[i-1][0] + triangle[i][0]) ์ด ๋จ๊ณ๋ ๊ทธ ์ธ ๊ฐ์ธ ์ค๊ฐ์ ์๋ ๊ฐ์ ๊ตฌํ๊ธฐ ์ํ ์ ํ์์ด๋ค.
์ค๊ฐ์ ์์นํ ๊ฐ๋ค์ ์์์ ๋ด๋ ค์ค๋ ๋ ๊ฐ์ง ๊ฒฝ๋ก
๊ฐ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์ง๋์ณ์จ ๊ฒฝ๋ก์ ํฉ์ด ๋ ํฐ ๊ฐ์ ์ ํํ์ฌ ์ ์ฅํด์ผ ํ๋ค. ์ฆ, ๊ทธ ์ธ์ ๊ฐ๋ค์ dp[i][j] = Math.max(dp[i-1][j-1], dp[i-1][j]) + triangle[i][j] ์ ํ์์ผ๋ก ์์ชฝ์์ ์ค๊ฑฐ๋ ์ผ์ชฝ ์์์ ์จ ๊ฐ ์ค ๋ ํฐ ๊ฐ์ ํ์ฌ triangle[i][j] ๊ฐ์ ๋ํ๋ค.
์ฆ, dp[i][j] ๊ฐ์ ๋ ๊ฐ์ง ๊ฒฝ๋ก ์ค ๋ ํฐ ๊ฐ์ ์ ํํ๊ณ , ํ์ฌ ์์น์ ๊ฐ์ ๋ํ์ฌ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ๋ง๋ ๋ค. ์ด ๋ฐฉ์์ผ๋ก ๋ง์ง๋ง ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ผ๋ฉด, ์ผ๊ฐํ์ ํ๊ณ ๋ด๋ ค์ค๋ ์ต๋๊ฐ์ ๊ตฌํ ์ ์๋ค.





์ต์ข
dp[][] ๋ฐฐ์ด์์ ๋งจ ์๋ซ์ค์ ์ต๋๊ฐ์ธ 30 ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฆฌํดํ๋ค.
๐จโ๐ป 3. ์ ๋ต์ฝ๋
import java.util.*; class Solution { public int solution(int[][] triangle) { int height = triangle.length; // ์ผ๊ฐํ์ ๋์ด int[][] dp = new int[height][height]; // ํฉ์ ์ ์ฅํ DP ๋ฐฐ์ด // 1. ์ฒซ ๋ฒ์งธ ์ค (๋งจ ๊ผญ๋๊ธฐ ๊ฐ) dp[0][0] = triangle[0][0]; // 2. ์ฒซ ๋ฒ์งธ ์ด ์ฑ์ฐ๊ธฐ (๋งจ ์ผ์ชฝ ๊ฒฝ๋ก) for (int i = 1; i < height; i++) { dp[i][0] = dp[i - 1][0] + triangle[i][0]; } // 3. DP ๋ฐฐ์ด ์ฑ์ฐ๊ธฐ (์ผ์ชฝ ์, ์์ชฝ ๋น๊ต) for (int i = 1; i < height; i++) { for (int j = 1; j < triangle[i].length; j++) { dp[i][j] = Math.max(dp[i-1][j-1], dp[i-1][j]) + triangle[i][j] ; } } // 4. ์ต๋๊ฐ ์ฐพ๊ธฐ (๋ง์ง๋ง ํ์์ ์ต๋๊ฐ) int answer = 0; for (int i = 0; i < height; i++) { answer = Math.max(answer, dp[height - 1][i]); } return answer; } }
๐ฆ 4. TMI
์ฌ๊ณ ์ถ์ค ใ
ใ
ใ
ํ๊ณ ์ด๋ป๊ฒ ์ค๋ช
ํ ์ง ์๊ฐํ๊ณ
์๋ฃ๋ง๋ค๊ณ ํฌ์คํ
ํ๋๋ฐ 3์๊ฐ ๊ฑธ๋ ธ์น
์ํ์ ๋ชจํฑ
