๐ก๐ธ๐ธ๐ถ๐ฃ: ๐๐๐๐๐๐พ๐๐ฝ๐/์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด (26) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ BOJ9095 : 1, 2, 3 ๋ํ๊ธฐ (Silver 3) ๋๋ฌด ์ค๋๋ง์ DP ํ์๋๋ ์ด์ผํ๋๊ฑด์ง ์์ ๊น๋จน์๋๋ฐ ์ธํฐ๋ท์ ์น์๋ง์ ๋ ์ค๋ฆ DP == ์ ํ์ ์ธ์ฐ๊ธฐ ๊ทธ๋์ DP ๊ธฐ๋ณธ ๋ฌธ์ ๋ ์ฝ๋ฉ๋ณด๋ค๋ ์ํ๋ฌธ์ ํธ๋ ๊ฒ ๊ฐ์ ๋๋์ด ๋ ๋ค.. ์ฒ์์ ์ด์ํ ์งํ๋ค๊ฐ ์ธํฐ๋ท์ ํ์ ๋น๋ ค ํํธ๋ฅผ ์ป์๊ณ , ๊ทธ ๋ต์ dp[i] = dp[i-3] + dp[i-2] + dp[i-1] ์๋ก, a5๋ฅผ ๊ตฌํ๋ค๊ณ ํด๋ณด๋ฉด a4 ์ฆ 4๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ๋ถ +1 ํ ๊ฒ + a3 ์ฆ 3์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ๋ถ +2 ํ ๊ฒ + a2 ์ฆ 2๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ๋ถ +3 ํ ๊ฒ ์ด ๋ฐ๋ก 5๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ๋ถ์ด๋ค. (2) + 3 (3) + 2 (4) + 1 ๊ดํธ ์์ ์๋ฅผ ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ์์์ ๊ตฌํด๋จ์ผ๋, ๊ทธ ๋ฐฉ๋ฒ์๋ค๊ฐ ๊ฐ๊ฐ 3, 2, 1์ ๋ํ๋ฉด ๋จ #include int dp[12].. BOJ2468 : ์์ ์์ญ (Silver 1) ์ฐ์ ๋๋ make_safezone์ผ๋ก safe_zone ๋ฐฐ์ด์ ์นจ์๋๋์ง ์๋์ง๋ฅผ ์ ์ฅํด์ฃผ์๋ค. rain_height๋ณด๋ค ๋์ด๊ฐ ๋์ผ๋ฉด 1, ๋ฎ๊ฑฐ๋ ๊ฐ์ผ๋ฉด 0์ผ๋ก ์์ญ์ด 1๋ก ๊ฐ์์ ์ผ๋ก ๋ณด์ด๊ฒ ๋ง๋ค์ด์ค ๊ทธ๋ฆฌ๊ณ ๋์ count_safezone ํด์ ๋ง๋ค์ด ๋ safezone์ ์์ญ ํฌ๊ธฐ๋ฅผ DFS๋ฅผ ํ์ฉํด ์ธ์ด์ฃผ์๋ค. ์ด ๊ณผ์ ์ rainheight 0๋ถํฐ 100๊น์ง ๋ฐ๋ณตํด ์ต๋๊ฐ์ ์ฐพ์์ฃผ๋ฉด ๋! #include #include #include using namespace std; int height[100][100] = {0,}; int safe_zone[100][100] = {0,}; int N = 0; void make_safezone(int rain_height); int count_safezone(.. BOJ3184 : ์ (Silver 1) https://www.acmicpc.net/problem/3184 ์ค๋๋ง์ ๋์์จ PS~~~^~^ ์ฌ๋ฌ๋ถ ํน์ ํ ๋ฒ์ ๋ง์ ๊ธฐ๋ถ์ด ์ด๋ค์ง ์์๋์ ์ผ๋จ ์ ๋ ์๋๋ค ใ ํํใ ฃํํ ์ง๊ธ ๋น์ฐํ ๋ญํ๋ ์์ธ ์๊ฒ ์ง ํ๊ณ ๋ ๋ค ๋๋ ค๋ดค๋๋ฐ ๊ฐ์๊ธฐ 100% ๋จ๊ณ ๋ง์์ต๋๋ค ๋ ์ ์๋ฆฌ์ง๋ฅผ๋ปํจ ์ ๋ง ์ค๋๋ง์ ๋ฐฑ์ค ๋ค์ ํ๊ณ ์๋๋ฐ ์ด์งธ์์ธ์ง ํ์ฐธ ๊ณต๋ถํ ๋๋ณด๋ค ๋จธ๋ฆฌ๊ฐ ๋ ํฝํฝ ์ ๋์๊ฐ์ ,,, ์๋ ์ ์ค๋ฒ 1 ์ด๋ ๊ฒ ๋นจ๋ฆฌ ๋ชป ํ์์๋๋ฐ... ๊ทธ๋ผ ์ค๋ช ์ ํด๋ณด๊ฒ ์ต๋๋น 1. ์ฐ์ ๊ธฐํธ๋ฅผ ์ ๋ถ ์ซ์๋ก ๋ฐ๊ฟ ์ด์ฐจ์ ๋ฐฐ์ด map์ ์ ์ฅํด์ค๋ค ๋ณด์๋ง์ ์์ธ์ง ๊ธฐํธ ๊ทธ๋๋ก ๋ ๋๋ฉด ๋ด๊ฐ ๋๋ฌด ํท๊ฐ๋ฆด ๊ฒ ๊ฐ์์ ๊ทธ๋ฅ ์น ๋ค ์ซ์๋ก ๋ณํํด์ ์ ์ฅํด์ฃผ์์ต๋๋ค ์ฌ์ค ๋ญ ์คํ ์๋์ ์์ฒญ ํฐ ์ ์ฝ์ด ์๋ ๊ทธ๋ฐ ๋ฌธ์ ์์ผ๋ฉด ๊ตณ์ด ์ํ๋๊ฒ ๋ .. BOJ5671 : ํธํ ๋ฐฉ ๋ฒํธ (Silver 5) #include using namespace std; int main() { while (1) { int N, M; int count = 0; cin >> N >> M; if (cin.eof()) break; for (int i = N; i BOJ14889 : ์คํํธ์ ๋งํฌ (Silver 3) #include using namespace std; int N; int map[21][21]; int ans = 100000000; bool is_visited[21]; void DFS(int player, int cnt) { if (cnt == N / 2) { int score1 = 0; int score2 = 0; for (int i = 1; i BOJ 2503 : ์ซ์์ผ๊ตฌ (Silver 5) #include #include using namespace std; int number; int strike, ball; vector array; void Filtering(int num, int s, int b) { vector newarray; vector::iterator iter; int strike = 0, ball = 0; for (iter = array.begin(); iter != array.end(); iter++) { int strike = 0, ball = 0; // cout BOJ17404 : RGB๊ฑฐ๋ฆฌ2 (Gold 4) #include using namespace std; int cost[1000][3]; long long costDP[1000][3]; long long result[3]; //long long result = 1000 * 10000 + 1; void makeDP(int N) { for (int j = 0; j < 3; j++) { costDP[0][0] = 1000 * 10000 + 1; costDP[0][1] = 1000 * 10000 + 1; costDP[0][2] = 1000 * 10000 + 1; costDP[0][j] = cost[0][j]; for (int i = 1; i < N; i++) { costDP[i][0] = min(costDP[i - 1][1], costDP[i - 1][2]) .. BOJ1149 : RGB๊ฑฐ๋ฆฌ (Silver 1) #include using namespace std; int cost[1000][3]; long long costDP[1000][2]; void makeDP(int N) { costDP[0][0] = cost[0][0]; costDP[0][1] = cost[0][1]; costDP[0][2] = cost[0][2]; for (int i = 1; i < N; i++) { costDP[i][0] = min(costDP[i - 1][1], costDP[i - 1][2]) + cost[i][0]; costDP[i][1] = min(costDP[i - 1][0], costDP[i - 1][2]) + cost[i][1]; costDP[i][2] = min(costDP[i - 1][0], costDP[i - 1][1.. BOJ11660 : ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5 (Silver 1) #include using namespace std; int map[1025][1025]; long long sum[1025][1025]; void sumMaker(int N) { for (int i = 0; i > M; int x1, x2, y1, y2; for (int i = 1; i map[i][j]; } } sumMaker(N); for (int i = 0; i > x1 >> y1 >> x2 >> y2; cout BOJ2012 : ๋ฑ์๋งค๊ธฐ๊ธฐ (Silver 3) #include #include using namespace std; int N; int prerank[500001]; long long rankingSystem() { long long angry = 0; for (int i = 1; i > N; for (int i = 1; i > prerank[i]; } sort(prerank + 1, prerank + N + 1); cout ์ด์ 1 2 3 ๋ค์