๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT

[๋ฐ์ดํ„ฐ ๊ตฌ์กฐ] ์žฌ๊ท€(recursive) ๋ž€?

by ๐Ÿ’ฒ๐ŸŽตโœ–๏ธโœ”๏ธโ˜ผ 2022. 11. 3.
728x90

์žฌ๊ท€๋ž€?

์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜

์žฌ๊ท€์  ๋ฐฉ๋ฒ•

์ž์‹ ์˜ ๋ณต์‚ฌ๋ณธ์„ ํ˜ธ์ถœํ•˜์—ฌ ๋” ์ž‘์€ ๋ฌธ์ œ๋ฅผ ํ’€๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

์ด๋ฅผ ์žฌ๊ท€ ๋‹จ๊ณ„๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์žฌ๊ท€ ๋‹จ๊ณ„๋Š” ๋” ๋งŽ์€ ์ˆ˜์˜ ์žฌ๊ท€ ๋‹จ๊ณ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

๋งค ๋‹จ๊ณ„๋ณด๋‹ค ํ•จ์ˆ˜๋Š” ์›๋ณธ ๋ฌธ์ œ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋‹จ์ˆœํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•œ๋‹ค.

์ž‘์€ ๋ฌธ์ œ์˜ ์„œ์—ด์€ ๊ฒฐ๊ตญ ๊ธฐ๋ณธ ๊ฒฝ์šฐ๋ฅผ ์ˆ˜๋ ดํ•ด์•ผ ํ•œ๋‹ค.

์™œ ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

์žฌ๊ท€๋Š” ์ˆ˜ํ•™์œผ๋กœ๋ถ€ํ„ฐ ๋นŒ๋ ค์˜จ ์œ ์šฉํ•œ ๊ธฐ๋ฒ•์ด๋‹ค.

์žฌ๊ท€ ์ฝ”๋“œ๋Š” ๋ฐ˜๋ณต ์ฝ”๋“œ๋ณด๋‹ค ์งง๊ณ  ์ž‘์„ฑํ•˜๊ธฐ ์‰ฝ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฃจํ”„๋Š” ์ปดํŒŒ์ผ๋˜๊ฑฐ๋‚˜ ์ธํ„ฐํ”„๋ฆฐํ„ฐ ๋  ๋•Œ ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ๋ฐ”๋€๋‹ค.

์žฌ๊ท€๋Š” ๋น„์Šทํ•œ ํ•˜์œ„ ์ž‘์—…์œผ๋กœ ์ •์˜๋  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์— ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ •๋ ฌ, ๊ฒ€์ƒ‰, ๊ทธ๋ฆฌ๊ณ  ํƒ์ƒ‰ ๋ฌธ์ œ๋“ค์ด ๊ฐ„๋‹จํ•œ ์žฌ๊ท€ ํ•ด๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ๋œ๋‹ค.

์žฌ๊ท€ ํ•จ์ˆ˜์˜ ํ˜•์‹

์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ํ•˜์œ„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์–ด๋Š ๋‹จ๊ณ„์— ์ด๋ฅด๋Ÿฌ์„œ๋Š”, ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ ๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜์œ„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•จ์ˆ˜๊ฐ€ ์žฌ๊ท€ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ธฐ๋ณธ ๊ฒฝ์šฐ๋ผ๊ณ  ํ•˜๊ณ , ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•ด์„œ ํ•˜์œ„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์žฌ๊ท€ ๊ฒฝ์šฐ๋ผ๊ณ  ํ•œ๋‹ค.

์žฌ๊ท€์™€ ๋ฉ”๋ชจ๋ฆฌ(์‹œ๊ฐํ™”)

์žฌ๊ท€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ๋ฉ”์„œ๋“œ์˜ ๋ณต์‚ฌ๋ณธ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋งŒ๋“ค์–ด์ง„๋‹ค.

๋ฉ”์„œ๋“œ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ ๋ฆฌํ„ดํ•˜๋Š” ๋ฉ”์„œ๋“œ์˜ ๋ณต์‚ฌ๋ณธ์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œ๋œ๋‹ค.

์žฌ๊ท€ ํ•ด๋ฒ•์€ ์‰ฌ์›Œ ๋ณด์ด์ง€๋งŒ, ์‹œ๊ฐํ™”์™€ ์ถ”์ ์—๋Š” ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฐ๋‹ค.

์žฌ๊ท€์™€ ๋ฐ˜๋ณต ๋น„๊ต

์žฌ๊ท€

  • ๊ธฐ๋ณธ ๊ฒฝ์šฐ์— ๋„๋‹ฌํ•˜๋ฉด ์ข…๋ฃŒํ•œ๋‹ค.
  • ๊ฐ ์žฌ๊ท€ ํ˜ธ์ถœ์€ ์Šคํƒ ํ”„๋ ˆ์ž„(์ฆ‰, ๋ฉ”๋ชจ๋ฆฌ)์— ๋ถ€๊ฐ€ ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•œ๋‹ค.
  • ๋ฌดํ•œ ์žฌ๊ท€์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•ด์„œ ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์ดˆ๋ž˜ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์–ด๋–ค ๋ฌธ์ œ๋“ค์˜ ํ•ด๋‹ต์€ ์žฌ๊ท€์ ์ธ ์ˆ˜์‹์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์‰ฝ๋‹ค.

๋ฐ˜๋ณต

  • ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๋•Œ ์ข…๋ฃŒํ•œ๋‹ค.
  • ๊ฐ ๋ฐ˜๋ณต์ด ๋ถ€๊ฐ€ ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋ฌดํ•œ ๋ฃจํ”„๋Š” ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌดํ•œํžˆ ๋ฐ˜๋ณต๋œ๋‹ค.
  • ๋ฐ˜๋ณต์  ํ•ด๋ฒ•์€ ์žฌ๊ท€์  ํ•ด๋ฒ•์— ๋น„ํ•ด ๊ฐ„๋‹จํ•˜์ง€ ์•Š์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค.

์žฌ๊ท€์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ

  • ์žฌ๊ท€์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋Š” ๊ธฐ๋ณธ ๊ฒฝ์šฐ์™€ ์žฌ๊ท€์  ๊ฒฝ์šฐ ์ด 2๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
  • ๋ชจ๋“  ์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ ๊ฒฝ์šฐ์— ์ข…๋ฃŒํ•ด์•ผ ํ•œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ˜๋ณต ํ•ด๋ฒ•์ด ์žฌ๊ท€ ํ•ด๋ฒ•๋ณด๋‹ค ํšจ์œจ์ ์ด๋‹ค.
     (์žฌ๊ท€ ํ˜ธ์ถœ์— ๋”ฐ๋ฅธ ๋ถ€๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ๋•Œ๋ฌธ)
  • ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์Šคํƒ์„ ์ด์šฉํ•ด์„œ ์žฌ๊ท€ ํ˜ธ์ถœ ์—†์ด ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ณดํ†ต ๋ฌธ์ œ๋ฅผ ๋” ์ผ์œผํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์œ ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค.
     ์ด ๋ง์€ ์žฌ๊ท€์ ์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ํ’€ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ด์•ผ๊ธฐ์ด๋‹ค.
  • ์–ด๋–ค ๋ฌธ์ œ๋“ค์˜ ๊ฒฝ์šฐ์— ๋ˆˆ์— ๋„๋Š” ๋ฐ˜๋ณต์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์–ด๋–ค ๋ฌธ์ œ๋Š” ์žฌ๊ท€์  ํ•ด๋ฒ•์ด ์ตœ์ ์ด๊ณ , ์–ด๋–ค ๋ฌธ์ œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.

์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ

  • ํ”ผ๋ณด๋‚˜์น˜์ˆ˜์—ด, ํŒฉํ† ๋ฆฌ์–ผ ๊ตฌํ•˜๊ธฐ
  • ๋ณ‘ํ•ฉ ์ •๋ ฌ, ํ€ต ์ •๋ ฌ
  • ์ด์ง„ ๊ฒ€์ƒ‰
  • ํŠธ๋ฆฌ ํƒ์ƒ‰, ์ค‘์œ„, ์ „์œ„, ํ›„์œ„ ๋“ฑ ์—ฌ๋Ÿฌ ํŠธ๋ฆฌ ๋ฌธ์ œ๋“ค
  • ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰, ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰๊ณผ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰
  • ๋™์  ๊ณ„ํš๋ฒ•์˜ ์˜ˆ
  • ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ํ•˜๋…ธ์ด์˜ ํƒ‘
  • ๋ฐฑํŠธ๋ž˜ํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ฐธ๊ณ 

๋‹ค์–‘ํ•œ ์˜ˆ์ œ๋กœ ํ•™์Šตํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ for Java

๋Œ“๊ธ€