Programming/Algorithms(5)
-
[์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด] STRJOIN ๋ฌธ์์ด ํฉ์น๊ธฐ / ํํ๋ง ์ฝ๋
1. ๋ฌธ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด C ์ ํฐ ๋ฌธ์ ์ ์ค ํ๋๋ ์ธ์ด ์ฐจ์์์ ๋ฌธ์์ด ๋ณ์ํ์ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. C ์์๋ ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ฌธ์์ด์ ํํํ๋ \0 (NULL) ๋ก ๋ฌธ์์ด์ ๋์ ์ง์ ํ๋๋ฐ, ์ด๋์๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ฝ๊ฒ ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. void strcat(char* dest, const char* src) { // dest ์ ๋ง์ง๋ง ์์น๋ฅผ ์ฐพ๋๋ค while(*dest) ++dest; // src ๋ฅผ ํ ๊ธ์์ฉ dest ์ ์ฎ๊ฒจ ๋ถ์ธ๋ค while(*src) *(dest++) = *(src++); // ๋ฌธ์์ด์ ๋์ ์๋ฆฌ๋ \0 ์ ์ถ๊ฐํ๋ค *dest = 0; } ์ด๋ฐ ๋ฌธ์ ์ค ํ๋๋ก ๋ฌธ์์ด์ ์กฐ์ํ๋ ํจ์๋ค์ ๋์ ์๊ฐ์ด ๋ถํ์ํ๊ฒ ์ปค์ง..
2021.11.30 -
[์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด] NUMBERGAME : ์ซ์ ๊ฒ์
1. ๋ฌธ์ n๊ฐ์ ์ ์๋ฅผ ์ผ๋ ฌ๋ก ๋์ด๋์ ๊ฒ์ํ์ ๊ฐ์ง๊ณ ํ์ฐ์ ์ํ๊ฐ ๊ฒ์์ ํฉ๋๋ค. ๊ฒ์์ ํ์ฐ๋ถํฐ ์์ํด์ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ์งํํ๋ฉฐ, ๊ฐ ์ฐธ๊ฐ์๋ ์๊ธฐ ์ฐจ๋ก๋ง๋ค ๋ ๊ฐ์ง ์ผ ์ค ํ๋๋ฅผ ํ ์ ์์ต๋๋ค. ๊ฒ์ํ์ ์ผ์ชฝ ๋์ ์๋ ์ซ์๋ ์ค๋ฅธ์ชฝ ๋์ ์๋ ์ซ์ ์ค ํ๋๋ฅผ ํํด ๊ฐ์ ธ๊ฐ๋๋ค. ๊ฐ์ ธ๊ฐ ์ซ์๋ ๊ฒ์ํ์์ ์ง์์ง๋๋ค. ๊ฒ์ํ์ ๋ ๊ฐ ์ด์์ ์ซ์๊ฐ ์์ ๊ฒฝ์ฐ, ์ผ์ชฝ ๋์์ 2๊ฐ, ํน์ ์ค๋ฅธ์ชฝ ๋์์ 2๊ฐ๋ฅผ ์ง์๋๋ค. ๊ฒ์์ ๋ชจ๋ ์ซ์๊ฐ ๋ค ์์ด์ก์ ๋ ๋๋๋ฉฐ, ๊ฐ ์ฌ๋์ ์ ์๋ ์์ ์ด ๊ฐ์ ธ๊ฐ ์ซ์๋ค์ ํฉ์ ๋๋ค. ํ์ฐ์ ์ํ๋ ์ ์๊ฐ ๋ ๋ฎ์ ์ชฝ์ด ์ ์ ๋์ ์ชฝ์ ํ ์ ์ฐจ์ด๋ง๋ค ๋ฐฑ ์์ฉ ์ฃผ๊ธฐ๋ก ๋ด๊ธฐ๋ฅผ ํ์ต๋๋ค. ๋ ์ฌ๋ ๋ชจ๋ ์ต์ ์ ๋คํ ๋, ๋ ์ฌ๋์ ์ต์ข ์ ์ ์ฐจ์ด๋ ์ผ๋ง์ผ๊น์? 2. ํ์ด /* ..
2021.11.28 -
[์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด] TICTACTOE game
1. ๋ฌธ์ ํฑํํ ๋ 3x3 ํฌ๊ธฐ์ ๊ฒ์ํ์์ ํ๋ 3๋ชฉ ๊ฒ์์ ๋๋ค. ๋ ๋ช ์ด ๋ฒ๊ฐ์๊ฐ๋ฉฐ o์ x๋ฅผ ๊ฒ์ํ์ ๋น ์นธ์ ์ฐ๋, ๋จผ์ ๊ฐ์ ๊ธ์๋ฅผ ๊ฐ๋ก, ์ธ๋ก ํน์ ๋๊ฐ์ ์ผ๋ก 3๊ฐ ์ฐ์ด๋๋ก ํ๋ ์ชฝ์ด ์ด๊น๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์ ๊ฒ์ํ์ x๊ฐ ์ด๊ธด ๊ฒ์ํ์ ๋๋ค. xoo .x. ..x ๊ฒ์์ ํญ์ x๋ถํฐ ์์ํฉ๋๋ค. ํฑํํ ๊ฒ์ํ์ ํ์ฌ ์ํ๊ฐ ์ฃผ์ด์ง๋๋ค. ๋ ์ฌ๋ ๋ชจ๋ ์ต์ ์ ๋คํ๋ค๊ณ ๊ฐ์ ํ ๋, ์ด๋์ชฝ์ด ์ด๊ธธ์ง ํ๋จํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. 2. ํ์ด /* - canWin(board) : ๊ฒ์ํ์ด ํ์ฌ board์ผ ๋, ์ด๋ฒ ์ฐจ๋ก์ธ ์ฌ๋์ด ์ด๊ธธ ์ ์๋ค๋ฉด 1, ๋น๊ธธ ์ ์๋ค๋ฉด 0, ์ง ์ ๋ฐ์ ์๋ค๋ฉด -1์ ๋ฐํํ๋ค. + board๋ฅผ ์ํ ์๋ฆฌ์ 3์ง์๋ก ๋ณธ๋ค. - ํจ์์ ๋ฐํ ๊ฐ ์ค -1์ด ์์ผ๋ฏ๋ก, c..
2021.11.28 -
[์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด] ZIMBABWE
1. ๋ฌธ์ ๊ณ๋ ํ ๊ฐ์ _ _ _ _ _ _ _ _ _ _ _ _ _ ์จ๋ธ๋ฐ์ง ๋ฌ๋ฌ! ๊ณํ ๊ฒฝ์ ์ ์คํจ๋ก ์ธ๊ณ ์ต๊ณ ์ ์ธํ๋ ์ด์ ์ ์๋ํ๊ฒ ๋ ๊ณต์ฐ ๊ตญ๊ฐ ์จ๋ธ๋ฐ์ง์์๋ ํ๋ฃจ ์ค์๋ ๋ฌผ๊ฐ๊ฐ ๊ณ์ ์ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฌผ๊ฑด์ ๊ฐ๊ฒฉ์ ์ค์๊ฐ์ผ๋ก ๋ฐ๊ฟ์ผ ํฉ๋๋ค. ์จ๋ธ๋ฐ์ง์์ ๊ฐ์ฅ ํฐ ๋ฌด๊ฐ๋ฒ ๋งํธ์์๋ ๊ทธ๋์ ์์ ๊ฐ์ด ๋น ์นธ๋ง ์ฐ์ฌ ์๋ ๊ด๊ณ ํ์ ๋ถ์ฌ๋๊ณ ๊ณ๋ ๊ฐ๊ฒฉ์ด ์ค๋ฆ์ ๋ฐ๋ผ (์ ํํ๋ ์จ๋ธ๋ฐ์ง ๋ฌ๋ฌ์ ๊ฐ์น๊ฐ ์ถ๋ฝํจ์ ๋ฐ๋ผ) ์ค์๊ฐ์ผ๋ก ์ซ์๊ฐ ํฌ๊ฒ ์ ํ ํ๋ผ์คํฑ ํ์ ๋น ์นธ์ ๊ฐ์ ๋ผ์๋๋ค. ์๋ฅผ ๋ค์ด ๊ณ๋ ํ ๊ฐ์ 35์ต ์จ๋ธ๋ฐ์ง ๋ฌ๋ฌ๋ผ๊ณ ํ๋ฉด, 3์ด ์ฐ์ธ ํ ํ ๊ฐ, 5๊ฐ ์ฐ์ธ ํ ํ ๊ฐ, 0์ด ์ฐ์ธ ํ ์ฌ๋ ๊ฐ๋ฅผ ๋น์นธ์ ์์๋๋ก ๋ผ์ฐ๋ ๊ฒ์ด์ฃ . ๋ฌด๊ฐ๋ฒ ๋งํธ์์ ์๋ฅด๋ฐ์ดํธ๋ฅผ ํ๋ ์ข ์ฑ์ด๋ ์ด๋ ๋ ๊ณค๋ํ ์๋..
2021.11.27 -
[์๊ณ ๋ฆฌ์ฆ] ๋์ ๊ณํ๋ฒ, ๋ฉ๋ชจ์ด์ ์ด์ ์ด๋?
๋์ ๊ณํ๋ฒ ์ค ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ ์ฉํ๋ ๋ฌธ์ ๋ค์ด ์ฐธ ๋ง์๋๋ฐ, ๋ฌด์จ ์๋ฆฌ์ธ์ง ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๋ค. ๊ทธ๋์ ์ค๋ ๊ฐ์ก๊ณ ์กฐ์ฌํด๋ณด์๋ค. ^_^ 1. ๋์ ๊ณํ๋ฒ์ด๋? ๋์ ๊ณํ๋ฒ (dynamic programming): ์ฒ์ ์ฃผ์ด์ง ๋ฌธ์ ๋ค์ ๋ถํ ํ๊ณ , ์ด๋ก๋ถํฐ ๋ณธ ๋ฌธ์ ์ ๊ดํ ๋ต์ ๋์ถํ๋ ์ ๊ทผ ๋ฐฉ๋ฒ์ด๋ค. ํนํ ๋ถ๋ถ ๋ฌธ์ ๋ค์ ์๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ ๋ ์ ์ฉํ๋ค. ๋์ ๊ณํ๋ฒ์ ์ฌ๋ฌ ๋ฌธ์ ํด๊ฒฐ์ ์ฌ์ฉ๋๋ ๋ถ๋ถ ๋ฌธ์ ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๋ฌ๋ฒ ๊ณ์ฐํ๋ ๋์ , ํ ๋ฒ๋ง ๊ณ์ฐํ๊ณ ์ด๋ฅผ ์ฌํ์ฉํ์ฌ ์๋๋ฅผ ํฅ์์ํจ๋ค๋ ์ ์์ ๋ถํ ์ ๋ณต๋ฒ๊ณผ ์ฐจ์ด๊ฐ ์๋ค. ์ด๋ฅผ ์ํ์ฌ ๊ฐ ๋ฌธ์ ์ ๋ต์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด์ผ ํ๋๋ฐ, ์ด๋ฏธ ๊ณ์ฐ๋ ๊ฐ์ ์ ์ฅํด๋๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฅ์๋ฅผ ์บ์(cache)๋ผ๊ณ ํ๋ฉฐ, ๋ ๋ฒ ์ด์ ๊ณ์ฐ๋๋ ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ์ค..
2021.11.27