๐ค PS(Problem Solving)/๋ฐฑ์ค(BOJ)
[๋ฐฑ์ค] 2193๋ฒ - ์ด์น์
๋ฌธ์ ๋ฌธ์ 0๊ณผ 1๋ก๋ง ์ด๋ฃจ์ด์ง ์๋ฅผ ์ด์ง์๋ผ ํ๋ค. ์ด๋ฌํ ์ด์ง์ ์ค ํน๋ณํ ์ฑ์ง์ ๊ฐ๋ ๊ฒ๋ค์ด ์๋๋ฐ, ์ด๋ค์ ์ด์น์(pinary number)๋ผ ํ๋ค. ์ด์น์๋ ๋ค์์ ์ฑ์ง์ ๋ง์กฑํ๋ค.์ด์น์๋ 0์ผ๋ก ์์ํ์ง ์๋๋ค.์ด์น์์์๋ 1์ด ๋ ๋ฒ ์ฐ์์ผ๋ก ๋ํ๋์ง ์๋๋ค. ์ฆ, 11์ ๋ถ๋ถ ๋ฌธ์์ด๋ก ๊ฐ์ง ์๋๋ค.์๋ฅผ ๋ค๋ฉด 1, 10, 100, 101, 1000, 1001 ๋ฑ์ด ์ด์น์๊ฐ ๋๋ค. ํ์ง๋ง 0010101์ด๋ 101101์ ๊ฐ๊ฐ 1, 2๋ฒ ๊ท์น์ ์๋ฐฐ๋๋ฏ๋ก ์ด์น์๊ฐ ์๋๋ค.N(1 ≤ N ≤ 90)์ด ์ฃผ์ด์ก์ ๋, N์๋ฆฌ ์ด์น์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ์ฒซ์งธ ์ค์ N์๋ฆฌ ์ด์น์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค. ํ์ด๊ณผ์ (1)๊ท์นDP์ด๋ฏ๋ก ์ ํ์๊ณผ ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ด์ฉ..
[๋ฐฑ์ค] 11057๋ฒ - ์ค๋ฅด๋ง ์
๋ฌธ์ ๋ฌธ์ ์ค๋ฅด๋ง ์๋ ์์ ์๋ฆฌ๊ฐ ์ค๋ฆ์ฐจ์์ ์ด๋ฃจ๋ ์๋ฅผ ๋งํ๋ค. ์ด๋, ์ธ์ ํ ์๊ฐ ๊ฐ์๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์น๋ค. ์๋ฅผ ๋ค์ด, 2234์ 3678, 11119๋ ์ค๋ฅด๋ง ์์ด์ง๋ง, 2232, 3676, 91111์ ์ค๋ฅด๋ง ์๊ฐ ์๋๋ค. ์์ ๊ธธ์ด N์ด ์ฃผ์ด์ก์ ๋, ์ค๋ฅด๋ง ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ 0์ผ๋ก ์์ํ ์ ์๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N (1 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ๊ธธ์ด๊ฐ N์ธ ์ค๋ฅด๋ง ์์ ๊ฐ์๋ฅผ 10,007๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. ํ์ด๊ณผ์ (1)๊ท์นDP์ด๋ฏ๋ก ์ ํ์๊ณผ ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ด์ฉํฉ๋๋ค.์ฒซ์งธ ์๋ฆฌ์๋ 0~9๋งจ ๋ง์ง๋ง ๊ฐ์ 1๋ฐ์ ์ฌ ์ ์์ต๋๋ค.์ค๋ฅด๋ง์ ๊ฐฏ์๋ 10007๋ก ๋๋ ๋๋จธ์ง ์ ๋๋ค. (2)์์ n=3๊น์ง์ ์๋ฅผ ๋ง๋ค์ด ๋ด ๋๋ค. n..
[๋ฐฑ์ค] 10844๋ฒ - ์ฌ์ด ๊ณ๋จ ์
์ฒ์์ ๋ฌธ์ ๊ฐ ์ดํด๊ฐ ์๋์ ๋จ์ํ 1-9,2-17,3-32, 4-54 ์ ์์ด ๊ท์น์ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ํ๋๋ฐ ์๋ชป๋ ์ ๊ทผ์ด์๋ค.~n์ผ๋๊น์ง i๋ฒ์งธ ์ธ๋ฑ์ค์์ ๋ง๋ค์ ์๋ ๊ณ๋จ์๊ฐฏ์๊ฐ ๋ช๊ฐ์ธ์ง๋ฅผ ๊ณ์ฐํ๋ ์ ํ์์ ๋ง๋ค์ด์ผ ํ๋ค. ๋ฌธ์ ๋ฌธ์ 45656์ด๋ ์๋ฅผ ๋ณด์.์ด ์๋ ์ธ์ ํ ๋ชจ๋ ์๋ฆฌ์์ ์ฐจ์ด๊ฐ 1์ด ๋๋ค. ์ด๋ฐ ์๋ฅผ ๊ณ๋จ ์๋ผ๊ณ ํ๋ค.์ธ์ค์ด๋ ์์ ๊ธธ์ด๊ฐ N์ธ ๊ณ๋จ ์๊ฐ ๋ช ๊ฐ ์๋์ง ๊ถ๊ธํด์ก๋ค.N์ด ์ฃผ์ด์ง ๋, ๊ธธ์ด๊ฐ N์ธ ๊ณ๋จ ์๊ฐ ์ด ๋ช ๊ฐ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. (0์ผ๋ก ์์ํ๋ ์๋ ์๋ค.) ์ ๋ ฅ์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. N์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ์ถ๋ ฅ์ฒซ์งธ ์ค์ ์ ๋ต์ 1,000,000,000์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. ์์ ์ ๋ ฅ -..
[๋ฐฑ์ค] 9095๋ฒ - 1, 2, 3 ๋ํ๊ธฐ
๋ฌธ์ [9095๋ฒ ๋งํฌ]https://www.acmicpc.net/problem/9095 ํ์ด๊ณผ์ (1) ๊ท์น ์ ์n์ 1,2,3์ ์กฐํฉ์ด ๋ช๊ฐ ๋ค์ด๊ฐ๋์ง ํ์ธํฉ๋๋ค. n=1 1 (1๊ฐ) n=2 11,2 (2๊ฐ) n=3 111,21,12,3 (4๊ฐ) n=4 1111,112,121,211,22,13,31 (7๊ฐ) n=5 11111,2111,1211,1121,1112,221,212,122,311,131,113,32,23 (13๊ฐ) ์ด์๊ฐ์ ๊ท์น์ผ๋ก ์งํ๋๋ฏ๋ก, ์ ํ์์ D[N] = D[N-1] + D[N-2] + D[N-3] ๋ก ๊ตฌํ ์ ์์ต๋๋ค.๋ฉ๋ชจ์ด์ ์ด์ ์ ์ด์ฉํ์ฌ ํด๊ฒฐํฉ๋๋ค. (2) ์์ T์ ์ ์n์ ์ ๋ ฅ๋ฐ๊ณ , ๋ฉ๋ชจ์ด์ ์ด์ ์ ๊ฐ์ ์ ์ฅํ๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค. (3) ์ฝ๋ #include #includ..
[๋ฐฑ์ค] 11727๋ฒ - 2×n ํ์ผ๋ง2
๋ฌธ์ ๋ฌธ์ 2×n ์ง์ฌ๊ฐํ์ 2×1๊ณผ 2×2 ํ์ผ๋ก ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.์๋ ๊ทธ๋ฆผ์ 2×17 ์ง์ฌ๊ฐํ์ ์ฑ์ด ํ๊ฐ์ง ์์ด๋ค.์ ๋ ฅ์ฒซ์งธ ์ค์ n์ด ์ฃผ์ด์ง๋ค. (1 ≤ n ≤ 1,000)์ถ๋ ฅ์ฒซ์งธ ์ค์ 2×n ํฌ๊ธฐ์ ์ง์ฌ๊ฐํ์ ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ 10,007๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. ํ์ด๊ณผ์ (1) ๊ท์น 2x2, 1x2, 2x1 ํ์ผ์ด ๋ช๊ฐ ๋ค์ด๊ฐ๋์ง ํ์ธํฉ๋๋ค.(2x2๋ 4, 1x2๋ 2, 2x1๋ 1๋ก ํ๊ธฐํฉ๋๋ค) n=1 1 (1๊ฐ) n=2 4,2,1(3๊ฐ) n=3 41,14,21,12,111 (5๊ฐ) n=4 (411,141,114,44)x2๊ฐ + 42,24,1111 (11๊ฐ) n=5 (4111,1411,1141,1114,441,414,144)x2๊ฐ + 421,412,142,24..
[๋ฐฑ์ค] 11726๋ฒ - 2×n ํ์ผ๋ง
๋ฌธ์ ๋ฌธ์ 2×n ํฌ๊ธฐ์ ์ง์ฌ๊ฐํ์ 1×2, 2×1 ํ์ผ๋ก ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.์๋ ๊ทธ๋ฆผ์ 2×5 ํฌ๊ธฐ์ ์ง์ฌ๊ฐํ์ ์ฑ์ด ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์์ด๋ค.์ ๋ ฅ์ฒซ์งธ ์ค์ n์ด ์ฃผ์ด์ง๋ค. (1 ≤ n ≤ 1,000)์ถ๋ ฅ์ฒซ์งธ ์ค์ 2×n ํฌ๊ธฐ์ ์ง์ฌ๊ฐํ์ ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ 10,007๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. ํ์ด๊ณผ์ (1) ๊ท์น ๊ฐ๋ก๊ธธ์ด๋ก๋ง ๊ณ์ฐํ๋ฉด ๋๊ธฐ๋๋ฌธ์ ์ธ๋ก๊ฐ 2๋ ์ ๊ฒฝ์ฐ์ง ์์ต๋๋ค.(2๋ (1x2 ํ์ผ), 1์(2x1 ํ์ผ) ) n=1 1 (1๊ฐ) n=2 2,11 (2๊ฐ) n=3 21,12,111 (3๊ฐ) n=4 211,121,112,22,1111 (5๊ฐ) n=5 2111,1211,1121,1112,221,212,122,11111 (8๊ฐ) ์ด์๊ฐ์ ๊ท์น์ผ๋ก ์งํ๋๋ฏ๋ก, ์ ํ์์..
[๋ฐฑ์ค] 1463๋ฒ - 1๋ก ๋ง๋ค๊ธฐ
์ฌํ๊น์ง ๋๋ ์ฝ๋ฉ์ ๊ฐ์ผ๋ก๋ง ๋ ๋งํ๊ธฐ๋ง ํ ๊ฒ ๊ฐ๋ค.DP(Dynamic Programming)์์ ์ ์ผ ์ค์ํ ๊ฒ์ด ์ ํ์ ์ธ์ฐ๊ธฐ๋ผ๋ ๊ฒ์ ์ด์ ์ผ ์ ๋๋ก ์ดํดํ๋ค. ๋ฌธ์ ์ ๊ฐ ๊ท์น์ ๊ณต์์ผ๋ก ๋ง๋ค๊ณ , ์ด๊ฒ์ ํ๋์ ์ํ์์ผ๋ก ๋ง๋๋๊ฒ์ด ์ ํ์์ด์๋ค.1463๋ฒ ๋ฌธ์ ๋ DP๋ฐฉ๋ฒ์ค ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ด์ฉํด์ ํ๋ฉด ์ต์ ํ๋ ๋ต์ด ๋์๋ค. ๋ด ์ฝ๋ - ์ ๋ต ๋ชป๋ง์ถค(์ ํ์ ์ฌ์ฉX)#include using namespace std; long long c;vector v;long long minDiv(int N){ if (N 1); cout D[N] = D[N/2]+1 N-- -> D[N] = D[N-1]+1 */ memo[1] = 0;//1์ผ๋๋ ์ ๋ต์ด๋ฏ๋ก ํ์X for (int i = 2; i
[๋ฐฑ์ค] ์ ์ถ๋ ฅ ๋ฌธ์ - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992
2557๋ฒ – Hello world #include using namespace std; int main() { printf("Hello World!"); return 0; } 1000๋ฒ- A+B, 2558๋ฒ - A+B2 #include using namespace std; int main() { int a, b; cin >> a >> b; cout a >> b; cout b) cout b; if (a == 0 && b == 0) break; else cout a >> c >> b; if (a + b == 0) break; else cout a >> b; cout
[๋ฐฑ์ค] 1058๋ฒ - ์น๊ตฌ
๋ฌธ์ ์ง๋ฏผ์ด๋ ์ธ๊ณ์์ ๊ฐ์ฅ ์ ๋ช ํ ์ฌ๋์ด ๋๊ตฌ์ธ์ง ๊ถ๊ธํด์ก๋ค. ๊ฐ์ฅ ์ ๋ช ํ ์ฌ๋์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๊ฐ ์ฌ๋์ 2-์น๊ตฌ๋ฅผ ๊ตฌํ๋ฉด ๋๋ค. ์ด๋ค ์ฌ๋ A๊ฐ ๋๋ค๋ฅธ ์ฌ๋ B์ 2-์น๊ตฌ๊ฐ ๋๊ธฐ ์ํด์ , ๋ ์ฌ๋์ด ์น๊ตฌ์ด๊ฑฐ๋, A์ ์น๊ตฌ์ด๊ณ , B์ ์น๊ตฌ์ธ C๊ฐ ์กด์ฌํด์ผ ๋๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฅ ์ ๋ช ํ ์ฌ๋์ 2-์น๊ตฌ์ ์๊ฐ ๊ฐ์ฅ ๋ง์ ์ฌ๋์ด๋ค. ๊ฐ์ฅ ์ ๋ช ํ ์ฌ๋์ 2-์น๊ตฌ์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. A์ B๊ฐ ์น๊ตฌ๋ฉด, B์ A๋ ์น๊ตฌ์ด๊ณ , A์ A๋ ์น๊ตฌ๊ฐ ์๋๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์ฌ๋์ ์ N์ด ์ฃผ์ด์ง๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฐ ์ฌ๋์ด ์น๊ตฌ์ด๋ฉด Y, ์๋๋ฉด N์ด ์ฃผ์ด์ง๋ค. (์์ ๋ฅผ ์ฐธ๊ณ ) ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ๊ฐ์ฅ ์ ๋ช ํ ์ฌ๋์ 2-์น๊ตฌ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. #์ธ์ด : ..