hugDog
Android DevLog
hugDog
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ™Œ Hello? (162)
    • ๐Ÿงฉ์•ˆ๋“œ๋กœ์ด๋“œ (12)
      • ๊ฐœ๋… ์ •๋ฆฌ (5)
      • ๋ฒ„๊ทธ ํ•ด๊ฒฐ (4)
      • ๊ธฐํƒ€ (3)
    • ๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜ (54)
      • ๊ฐœ๋… (0)
      • ๋ฐฑ์ค€ (48)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
    • ๐Ÿ“„๊ฐœ๋ฐœ ์ผ์ง€ (0)
      • FINPO (0)
    • ๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (71)
      • C++ ์ •๋ฆฌ (49)
      • C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค ์—ฐ์Šต๋ฌธ์ œ (20)
      • Kotlin (2)
    • โญProject (1)
    • ๐ŸšดTIL (13)
      • Clean Code (13)
    • ๐Ÿšฉ๊ธฐํƒ€ (9)
      • ๋ชฉํ‘œ (6)
      • ์ผ์ƒ (3)
      • ๋ฌธ์„œ (0)

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
hugDog

Android DevLog

๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ์ •๋ฆฌ

C++ ์ •๋ฆฌ - 21 (ํ•จ์ˆ˜์™€ C์Šคํƒ€์ผ์˜ ๋ฌธ์ž์—ด, ํ•จ์ˆ˜์™€ ๊ตฌ์กฐ์ฒด,ํ•จ์ˆ˜์™€ string ํด๋ž˜์Šค ๊ฐ์ฒด, ํ•จ์ˆ˜์™€ array ๊ฐ์ฒด, ์žฌ๊ท€ํ˜ธ์ถœ)

2020. 4. 8. 16:02
728x90

ํ•จ์ˆ˜์™€ C ์Šคํƒ€์ผ์˜ ๋ฌธ์ž์—ด

C ์Šคํƒ€์ผ ๋ฌธ์ž์—ด์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

-๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•

1. charํ˜•์˜ ๋ฐฐ์—ด

2. ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์€ ๋ฌธ์ž์—ด ์ƒ์ˆ˜ (๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด)

3. ๋ฌธ์ž์—ด์˜ ์ฃผ์†Œ๋กœ ์„ค์ •๋œ char ํ˜•์„ ์ง€์‹œํ•˜๋Š” ํฌ์ธํ„ฐ

์„ธ ๊ฐ€์ง€ ๋ชจ๋‘ charํ˜•์„ ์ง€์‹œํ•˜๋Š” ํฌ์ธํ„ฐ ์ด๋ฏ€๋กœ ๋ชจ๋‘ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ

 

char ghost[15]="galloping"; cout<<ghost; //galloping ์ถœ๋ ฅ

char * str = "galumphing"; cout<<str; //galumphing ์ถœ๋ ฅ

int n1 = strlen(ghost);

int n2 = strlen(str);

int n3 = strlen("gamboling");

 

c์Šคํƒ€์ผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ (์˜ˆ์‹œ)

char * buildstr(char c,int n)

{

char * pstr = new char[n+1];

pstr[n]='\0';

while(n-- >0)

pstr[n]=c;

return pstr;

}

 

ํ•จ์ˆ˜์™€ ๊ตฌ์กฐ์ฒด

๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜๋Š” ๋ณดํ†ต์˜ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ ํ•จ์ˆ˜๋Š” ๊ตฌ์กฐ์ฒด์˜ ์›๋ณธ์ด ์•„๋‹Œ ๋ณต์‚ฌ๋ณธ์„ ๋Œ€์ƒ์œผ๋กœ ์ž‘์—…ํ•œ๋‹ค.

๋˜ํ•œ ํ•จ์ˆ˜๋Š” ๊ตฌ์กฐ์ฒด ๋ฆฌํ„ด ๊ฐ€๋Šฅ

 

๊ตฌ์กฐ์ฒด์˜ ์ „๋‹ฌ๊ณผ ๋ฆฌํ„ด

๊ตฌ์กฐ์ฒด๋ฅผ ๊ฐ’์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์€ ๊ตฌ์กฐ์ฒด์˜ ํฌ๊ธฐ๊ฐ€ ๋น„๊ต์  ์ž‘์€ ๊ฒฝ์šฐ์— ์•Œ๋งž์Œ.

์‚ฌ์šฉ๋ฒ•์€ ์ผ๋ฐ˜ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ.

 

๊ตฌ์กฐ์ฒด ์ฃผ์†Œ์˜ ์ „๋‹ฌ

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๊ตฌ์กฐ์ฒด ๋Œ€์‹ ์— ๊ตฌ์กฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ „๋‹ฌ

๊ตฌ์กฐ์ฒด๋ฅผ ์ง€์‹œํ•˜๋Š” ํฌ์ธํ„ฐ, ํ˜•์‹ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์„ ์–ธ, ํ•จ์ˆ˜๊ฐ€ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์— const ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ

ํ˜•์‹ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๊ตฌ์กฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ํฌ์ธํ„ฐ์ด๋ฏ€๋กœ, ๋ฉค๋ฒ„ ์—ฐ์‚ฐ์‚ฌ(.) ๋Œ€์‹ ์— ๊ฐ„์ ‘ ๋ฉค๋ฒ„ ์—ฐ์‚ฐ์ž(->) ์‚ฌ์šฉ

 

ํ•จ์ˆ˜์™€ string ํด๋ž˜์Šค ๊ฐ์ฒด

string์˜ ๋ฐฐ์—ด ์„ ์–ธ ํ˜•์‹ // ๋ณดํ†ต์˜ ๋ฐฐ์—ด ์„ ์–ธ ํ˜•์‹ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ

string list[5];

 

ํ•จ์ˆ˜์™€ array ๊ฐ์ฒด

C++์—์„œ์˜ ํด๋ž˜์Šค ๊ฐ์ฒด๋Š” ๊ตฌ์กฐ์ฒด์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ตฌ์กฐ์ฒด์— ์ ์šฉ๋˜๋Š” ๋™์ผํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณ ๋ ค ์‚ฌํ•ญ๋“ค ์ค‘ ์ผ๋ถ€๊ฐ€ ํด๋ž˜์Šค์—๋„ ์ ์šฉ๋จ

 

์žฌ๊ท€ ํ˜ธ์ถœ

C++ ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœ ๊ฐ€๋Šฅ (main() ํ•จ์ˆ˜ ์ œ์™ธ)

 

๋‹จ์ผ ์žฌ๊ท€ ํ˜ธ์ถœ

void recurs(argumentlist)

{

stataements1

if(test)

recurs(arguments)

statements2

}

 

  1. if ๊ตฌ๋ฌธ์ด ์ฐธ์œผ๋กœ ์œ ์ง€๋˜๋Š” ๋™์•ˆ, ๊ฐ๊ฐ์˜ recurs() ํ•จ์ˆ˜ ํ˜ธ์ถœ์€ statements1 ๋ถ€๋ถ„๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ  statements2 ๋ถ€๋ถ„์€ ๋’ค๋กœ ๋ฏธ๋ค„๋‘” ์ฑ„ ์ƒˆ๋กœ์šด recurs() ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์‹คํ–‰
  2. if ๊ตฌ๋ฌธ์ด ๊ฑฐ์ง“์ด ๋œ ํ•จ์ˆ˜ ๋ถ€๋ถ„์—์„œ statements2 ๋ถ€๋ถ„์ด ์ˆ˜ํ–‰๋œ๋‹ค.
  3. ์ด์ „์˜ recurs() ํ˜ธ์ถœ๋กœ ๋„˜์–ด๊ฐ€ statements2 ์‹คํ–‰ ๋ฐ€๋ฆฐ statements2๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ์ด์ „์˜ recurs() ํ˜ธ์ถœ๋กœ ๋„˜์–ด๊ฐ

๋‹ค์ค‘ ์žฌ๊ท€ ํ˜ธ์ถœ

๋‹ค์ค‘ ์žฌ๊ท€ ํ˜ธ์ถœ์€ ํ•˜๋‚˜์˜ ์ง์—…์„ ์„œ๋กœ ๋น„์Šทํ•œ ๋‘ ๊ฐœ์˜ ์ž‘์€ ์ž‘์—…์œผ๋กœ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ถ„ํ• ํ•ด ๊ฐ€๋ฉด์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ํŠน๋ณ„ํžˆ ์œ ์šฉ

EX) ๋ˆˆ๊ธˆ์ž๋ฅผ ๊ทธ๋ฆด ๋•Œ, ๋‘ ๊ฐœ์˜ ๋์„ ๋จผ์ € ํ‘œ์‹œํ•œ ํ›„ ์ค‘๊ฐ„ ์ง€์ ์— ๋ˆˆ๊ธˆ์„ ํ‘œ์‹œํ•œ๋‹ค. ๋™์ผํ•œ ์ ˆ์ฐจ๋ฅผ ๋ˆˆ๊ธˆ์ž์˜ ์™ผ์ชฝ ์ ˆ๋ฐ˜์— ์ˆ˜ํ–‰ ํ›„ ์˜ค๋ฅธ์ชฝ ์ ˆ๋ฐ˜์—๋„ ์ˆ˜ํ–‰ -> ๋ฐ˜๋ณต, ์ด๋Ÿฌํ•œ ์žฌ๊ท€์ ์ธ ์ ‘๊ทผ์„ ๋ถ„ํ•  ์ •๋ณต ( divide-and-conquer) ์ „๋žต์ด๋ผ ํ•จ.

 

 

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    '๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ์ •๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • C++ ์ •๋ฆฌ - 23 (์ฐธ์กฐ ๋ณ€์ˆ˜,์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ์„ ์–ธ,ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ์„œ์˜ ์ฐธ์กฐ,์ฐธ์กฐ์˜ ํŠน์„ฑ,lvalue,๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ,์ฐธ์กฐ๋ฅผ ๋ฆฌํ„ดํ•  ๋•Œ ์ฃผ์˜ํ•  ์ )
    • C++ ์ •๋ฆฌ - 22 (ํ•จ์ˆ˜๋ฅผ ์ง€์‹œํ•˜๋Š” ํฌ์ธํ„ฐ,ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์˜ ๊ธฐ์ดˆ,ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์˜ ๋ฐฐ์—ด,c++ ์ธ๋ผ์ธ(inline) ํ•จ์ˆ˜)
    • C++ ์ •๋ฆฌ - 20 (ํฌ์ธํ„ฐ์™€ const, ํ•จ์ˆ˜์™€ 2์ฐจ์› ๋ฐฐ์—ด)
    • C++ ์ •๋ฆฌ - 19 (ํ•จ์ˆ˜์˜ ๊ธฐ์ดˆ, ํ•จ์ˆ˜ ์ •์˜, ํ•จ์ˆ˜ ์›ํ˜•์˜ ๊ตฌ๋ฌธ ๊ทœ์น™, ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ฐ’์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ, ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜, ๋ฐฐ์—ด์˜ ๋‚ด์šฉ ์ถœ๋ ฅ๊ณผ const๋กœ ๋ณดํ˜ธํ•˜๊ธฐ)
    hugDog
    hugDog
    ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต๋ถ€ ์ค‘์ธ ํ•™์ƒ์ž…๋‹ˆ๋‹ค!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”