[์šฐ์„ ์ˆœ์œ„ ํ] ์ œ์ž๋ฆฌ ์ •๋ ฌ(์„ ํƒ์ •๋ ฌ, ์‚ฝ์ž…์ •๋ ฌ)

์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•œ ์ •๋ ฌ : ๋น„๊ต ๊ฐ€๋Šฅํ•œ ์›์†Œ ์ง‘ํ•ฉ์„ ์ •๋ ฌํ•˜๋Š”๋ฐ ์šฐ์„ ์ˆœ์œ„ ํ ์ด์šฉ ๊ฐ€๋Šฅ 1. ์„ ํƒ ์ •๋ ฌ - ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ๋ฌด์ˆœ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ (์šฐ์„ ์ˆœ์œ„ ํ์˜ ํ•ญ๋ชฉ๋“ค์„ ๋ฆฌ์ŠคํŠธ์— ์ž„์˜ ์ˆœ์„œ๋กœ ์ €์žฅ) - ์‹คํ–‰์‹œ๊ฐ„ : O(n^2) (์šฐ์„ ์ˆœ์œ„ ํ์— ์‚ฝ์ž…ํ•˜๋Š”๋ฐ O(n)์‹œ๊ฐ„ ์†Œ์š” + ์ •๋ ฌ์ˆœ์„œ๋กœ ์‚ญ์ œํ•˜๋Š”๋ฐ n+(n-1)+(N-2)+... ์‹œ๊ฐ„ ์†Œ์š”) 2. ์‚ฝ์ž… ์ •๋ ฌ - ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ˆœ์„œ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ (์šฐ์„ ์ˆœ์œ„ ํ์˜ ํ•ญ๋ชฉ๋“ค์„ ๋ฆฌ์ŠคํŠธ์— ํ‚ค ์ •๋ ฌ ์ˆœ์„œ๋กœ ์ €์žฅ) - ์‹คํ–‰์‹œ๊ฐ„ : O(n^2) (์šฐ์„ ์ˆœ์œ„ ํ์— ์‚ฝ์ž…ํ•˜๋Š”๋ฐ n+(n-1)+(N-2)+... ์‹œ๊ฐ„ ์†Œ์š” + ์ •๋ ฌ์ˆœ์„œ๋กœ ์‚ญ์ œํ•˜๋Š”๋ฐ O(n)์‹œ๊ฐ„ ์†Œ์š”) 3. ์ œ์ž๋ฆฌ ์ •๋ ฌ -๋ฆฌ์ŠคํŠธ ์ž์ฒด๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„ ์ด์™ธ์— O(1) ๊ณต๊ฐ„ ๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์ด๋ฅผ "์ œ์ž๋ฆฌ(in-place)"์—์„œ ..

[1-2ํ•™๊ธฐ 2**] ๋ฌธ์ž์—ด ์ž…๋ ฅ ๋ฐ›๊ณ  ๊ตฌ๊ฐ„ ์ •ํ•ด์„œ ๊ตฌ๊ฐ„ ์•ˆ์— ์˜์–ด ๋Œ€๋ฌธ์ž๊ฐ€ ๋ช‡๊ฐœ๋‚˜ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ ํ›„, ๊ฐ€์žฅ ์ ์€ ๊ฒƒ ์ถœ๋ ฅํ•˜๊ธฐ, ๊ฒน์น˜๋ฉด ๋‚˜์ค‘์— ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด ์ถœ๋ ฅํ•˜๊ธฐ

[ ๋ฌธ์ œ 2-2 ] (100์ ) ๊ณต๋ฐฑ์ด ํฌํ•จ ๋œ N๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„, ๊ฐ ๋ฌธ์ž์—ด์˜ M1๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ M2๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€์˜ ๋ฌธ์ž๋“ค ์ค‘์— ์˜์–ด๋Œ€๋ฌธ์ž๊ฐ€ ๋ช‡ ๊ฐœ ํฌํ•จ๋˜๋Š”์ง€ ์„ธ์–ด (M1๋ฒˆ์งธ ๋ฌธ์ž์™€ M2๋ฒˆ์งธ ๋ฌธ์ž ํฌํ•จ), ์˜์–ด ๋Œ€๋ฌธ์ž๋ฅผ ๊ฐ€์žฅ ์ ๊ฒŒ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ž˜์˜ check_u ํ•จ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋ฌธ์ž์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 100์ด๊ณ , ์˜์–ด๋Œ€๋ฌธ์ž๋ฅผ ํ•˜๋‚˜๋„ ํฌํ•จํ•˜์ง€ ์•Š ์€ ๋ฌธ์ž์—ด์€ ์ถœ๋ ฅ์—์„œ ์ œ์™ธํ•œ๋‹ค. (N์€ ์ตœ๋Œ€ 20 ์ด๋‹ค. ๋™์ ํ• ๋‹น๋ฌธ์ œ๊ฐ€ ์•„๋‹˜. 2์ฐจ์› ๋ฐฐ์—ด์ด ํ•„์š” ์—† ๋Š” ๋ฌธ์ œ์ด๋‹ค) - ์ •์ˆ˜ N๊ณผ M1, M2๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ๊ณต๋ฐฑ์ด ํฌํ•จ๋œ N๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. - M1๊ณผ M2๋Š” 0๋ถ€ํ„ฐ ํ‘œ์‹œ๋˜์–ด ๋ฌธ์ž์—ด๋‚ด์˜ ๊ฐ ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. M1 ๊ฐ’์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ..

Programming/c 2021. 1. 8. 05:07
[1-2ํ•™๊ธฐ 2**] ๋ฌธ์ž์—ด๋กœ ๋‹จ์–ด ๋ฐ›์•„์„œ ๊ฐ™์€ ๋‹จ์–ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ ํ›„ ๊ธธ์ด ๊ธธ๊ณ  ์‚ฌ์ „์ƒ ๋น ๋ฅธ ๋‹จ์–ด ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ

[ ๋ฌธ์ œ 3-1 ] (50์ ) ๋™์ ํ• ๋‹น ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๊ณ  ๋ฌธ์ž์—ด ๋ฌธ์ œ์ด๋‹ค. (1) ์ฒซ ๋ฒˆ์งธ ์ค„์—์„œ, N๊ฐœ์˜ ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด A๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  (2) ๋‘ ๋ฒˆ์งธ ์ค„์—์„œ, M๊ฐœ์˜ ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด B๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ (3) ๋‘ ๋ฌธ์ž์—ด ๋ชจ๋‘์— ํฌํ•จ๋œ ๋‹จ์–ด์˜ ์ˆ˜๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ณ , (4) ๋‘ ๋ฌธ์ž์—ด ๋ชจ๋‘์— ํฌํ•จ๋œ ๋‹จ์–ด ์ค‘ ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธด ๋‹จ์–ด๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜์‹œ์˜ค. ๋งŒ์•ฝ, ๋‘ ๋ฌธ์ž์—ด ๋ชจ๋‘์— ํฌํ•จ๋œ ๋‹จ์–ด ์ค‘ ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธด ๋‹จ์–ด๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ ์กด์žฌํ•˜๋ฉด, ์‚ฌ์ „ ์ˆœ์„œ ์ƒ ์•ž์„  ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. (์š”์•ฝ) ๋‘ ๋ฌธ์ž์—ด ๋ชจ๋‘์— ํฌํ•จ๋œ ๋‹จ์–ด ์ค‘ --- ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธด ๋‹จ์–ด --- ์‚ฌ์ „ ์ˆœ์„œ ์ƒ ์•ž์„  ๋‹จ์–ด - ๋ฌธ์ž์—ด A์™€ B์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 100์ด๊ณ , N๊ณผ M์€ 20๋ณด๋‹ค ํฌ์ง€ ์•Š๋‹ค. - ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๋ฌธ์ž์ˆซ์ž..

Programming/c 2021. 1. 8. 04:03
[1-2ํ•™๊ธฐ 2**] ์‹œํ—˜ ํƒˆ๋ฝ์ž ๋ฌธ์ œ

[ ๋ฌธ์ œ 1-2 ] (100์ ) N๋ช… ํ•™์ƒ์˜ ์ด๋ฆ„๊ณผ 1์ฐจ, 2์ฐจ ์‹œํ—˜ ์ ์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ์ธ์ฆ์‹œํ—˜ ์ „ ์ฒด ํ‰๊ท ์ ์ˆ˜์™€ ํ‰๊ท ์ ์ˆ˜ ์ดํ•˜์ธ ํ•™์ƒ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ ํ•œ ํ›„, ํ‰๊ท  ์ ์ˆ˜ ์ดํ•˜์ธ ํ•™์ƒ์˜ ์ด๋ฆ„๊ณผ ์ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋œ ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ž˜์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, N≤100์ด๊ณ , ๊ฐ ํ•™์ƒ ์˜ ์‹œํ—˜ ํ‰๊ท  ์ ์ˆ˜๋Š” 1์ฐจ ์‹œํ—˜ ์ ์ˆ˜์˜ 40%์™€ 2์ฐจ ์‹œํ—˜ ์ ์ˆ˜์˜ 60%์˜ ํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ ํ•œ๋‹ค. - insertData ํ•จ์ˆ˜ โ—ฆ ํ•จ์ˆ˜์›ํ˜• : void insertData(struct student_info *s, int N) โ—ฆ N๋ช… ํ•™์ƒ์˜ ์ด๋ฆ„๊ณผ ํ•™์ƒ ๋‹น ๋‘ ๋ฒˆ์˜ ์‹œํ—˜ ์ ์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ณ , ํ•™์ƒ์˜ ์‹œํ—˜ ํ‰๊ท  ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. โ—ฆ ํ•™์ƒ์˜ ์ด๋ฆ„์€ ๊ณต๋ฐฑ์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์ตœ๋Œ€ 10๊ฐœ ์˜์–ด ๋ฌธ์ž์ด๋‹ค...

Programming/c 2021. 1. 8. 02:33
[๋ฌธ์ž์—ด] ๊ณต๋ฐฑ์„ ํฌํ•จํ•œ ๋ฌธ์ž์—ด ์ž…๋ ฅ ๋ฐ›๊ณ , ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‹จ์–ด ์ž๋ฅด๊ธฐ

๋ฌธ์ œ: ์ฒซ ๋ฒˆ์งธ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์— ์žˆ๋Š” ๋‹จ์–ด๋“ค ์ค‘์—์„œ, ๋‘ ๋ฒˆ์งธ ์ž…๋ ฅ๋ฐ›์€ ๋‹จ์–ด๋ณด๋‹ค ์‚ฌ์ „์ˆœ์œผ๋กœ ์•ž์— ํ•ด๋‹นํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ๋‹ค์Œ ์ค„์— ์‚ฌ์ „์ˆœ์œผ๋กœ ๋’ค์— ํ•ด๋‹นํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜์‹œ์˜ค. ์ฝ”๋“œ: #include #include int main() { char str1[150]; char str2[10]; char x[15][100]; //๋‹จ์–ด ๊ณต๋ฐฑ ๋‹จ์œ„๋กœ ์งค๋ผ์„œ ์ €์žฅํ•  ๋ฐฐ์—ด gets(str1); gets(str2); int i = 0, j, s, k = 0; int cnt = 0; for (i = 0; i < str1[i]; i++) {//str1 ๋ฌธ์ž์—ด์ด ๋„ ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋Œ๋ฆฌ๊ธฐ if (str1[i] != ' ') { //๊ณต๋ฐฑ์ด ์•„๋‹ˆ๋ผ๋ฉด for (j ..

Programming/c 2021. 1. 6. 02:19