๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋‚˜์˜ ๋ชจ์–‘

SEB_BE_40 | 021 | ๋ฐ์ผ๋ฆฌ์ฝ”๋”ฉ, ์žฌ๊ท€ํ•จ์ˆ˜ ๋ณธ๋ฌธ

Algorithm

SEB_BE_40 | 021 | ๋ฐ์ผ๋ฆฌ์ฝ”๋”ฉ, ์žฌ๊ท€ํ•จ์ˆ˜

kexon 2022. 7. 21. 23:52

๐Ÿ’™ ๋ฐ์ผ๋ฆฌ ์ฝ”๋”ฉ

๐Ÿค transformFirstAndLast

  • ๊นƒํ—ˆ๋ธŒ ์ปค๋ฐ‹ ์™„๋ฃŒ

๐Ÿ’› ์žฌ๊ท€ํ•จ์ˆ˜

  • ์žฌ๊ท€: ์›๋ž˜์˜ ์ž๊ธฐ ์ž๋ฆฌ๋กœ ๋˜๋Œ์•„๊ฐ€๊ฑฐ๋‚˜ ๋˜๋Œ์•„์˜ด
  • ์žฌ๊ท€ํ•จ์ˆ˜: ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜

๐Ÿค ์žฌ๊ท€ํ•จ์ˆ˜ ์žฅ/๋‹จ์ 

์žฅ์ 

  • ์ฝ”๋“œ ๊ฐ„๊ฒฐ, ์ˆ˜์ • ์šฉ์ด
  • ๋ณ€์ˆ˜ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•  ํ•„์š” ์—†์Œ

๋‹จ์ 

  • ์ง๊ด€์ ์ธ ์ฝ”๋“œ์˜ ํ๋ฆ„ ํŒŒ์•…์ด ์–ด๋ ค์›€
  • ๋ฐ˜๋ณต๋ฌธ๋ณด๋‹ค ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ
  • ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ → ์ข…๋ฃŒ ์ดํ›„ ๋ณต๊ท€๋ฅผ ์œ„ํ•œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๋น„์šฉ ๋ฐœ์ƒ

๐Ÿค ์žฌ๊ท€ํ•จ์ˆ˜ ์‚ฌ์šฉ ์กฐ๊ฑด

  • ๋ฌธ์ œ์˜ ํฌ๊ธฐ๋ฅผ ์ ์  ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ” ⇒ ํƒˆ์ถœ
  • ์žฌ๊ท€ ํ˜ธ์ถœ์ด ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์กด์žฌ
  • ์—ฐ์‚ฐ ๊ณผ์ •์ด ๋™์ผํ•  ๋•Œ ์‚ฌ์šฉ

๐Ÿค ์žฌ๊ท€ ์‚ฌ์šฉ์ด ๋ฐ˜๋ณต๋ฌธ๋ณด๋‹ค ์ ํ•ฉํ•  ๋•Œ

  • ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋น„์Šทํ•œ ๊ตฌ์กฐ์˜ ๋” ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์„ ๋•Œ
  • ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ์ด ๋งŽ๊ฑฐ๋‚˜ ๋ฐ˜๋ณต๋ฌธ์˜ ์ค‘์ฒฉ ํšŸ์ˆ˜๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šธ ๋•Œ
  • ๋ณ€์ˆ˜ ์‚ฌ์šฉ์„ ์ค„์ด๊ณ  ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ผ ๋•Œ

๐Ÿ’š Practical - Recursive Function

๐Ÿค TIL

๋”๋ณด๊ธฐ
  • ์žฌ๊ท€ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ตํž ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜์—์„œ ์ œ์ผ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํƒˆ์ถœ์ด์—ˆ๋Š”๋ฐ, ์ž‘์—…์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์ œ์ผ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์ฃผ๋Š” ๊ฑฐ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์ชผ๊ฐค ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ์ชผ๊ฐœ์ฃผ๊ณ  ๋ฌธ์ œ๋ฅผ ์ชผ๊ฐค ์ˆ˜ ์žˆ์„ ๋• ๋‹จ์ˆœํ•œ ๊ฒƒ์„ ํ•ด๊ฒฐํ•ด์ฃผ๊ณ  ๋ณต์žกํ•œ ๊ฒƒ์„ ํ•ด๊ฒฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค! ๋ง์ด์‰ฝ์ง€~ ์•„์›ƒํ’‹์€ ์•„์‰ฝ๋‹ค..๐Ÿคฃ
  • ํ™€์ˆ˜์ง์ˆ˜ ๊ตฌํ•  ๋• i % 2 == 0 || i % 2 == 1 ์ด ์ž๋™ํƒ‘์žฌ์˜€๋Š”๋ฐ ๋‚˜๋จธ์ง€, ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์ž๋ฅผ ์ œํ•œํ•˜๋‹ˆ๊นŒ ๋ญ์ง€?! ์‹ถ์—ˆ์ง€๋งŒ -2๋ฅผ ๋นผ๋ฉด์„œ 0์ด๋‚˜ 1์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค! ๊ณ„์† ๋ญ”๊ฐ€ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋Š”๋ฐ~~ ๊นŒ์ง€๋งŒ ์ƒ๊ฐ๋‚˜๊ณ  -2๊ฐ€ ์ƒ๊ฐ์ด ์•ˆ๋‚ฌ๋Š”๋ฐ ์ด๋ฒˆ์— ํ™•์‹คํ•˜๊ฒŒ ์•Œ์•„๋‘ฌ์•ผ๊ฒ ๋‹ค.
  • ์ฝ”๋“œ๊ฐ€ ์งง๋‹ค๊ณ  ๋ฌด์กฐ๊ฑด ์ข‹์€ ๊ฒŒ ์•„๋‹ˆ๋ผ ์ƒํ™ฉ์— ๋งž๋Š”, ์ง๊ด€์ ์ธ ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ๊ณ ๋ฏผํ•ด๋ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
  • ๋ฐฐ์—ด ๋ณต์‚ฌ
    • ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ!
    • ๊ฐ’์— ์˜ํ•œ ๋ณต์‚ฌ์ด๋ฏ€๋กœ ๋ณต์‚ฌ๋œ ๋ฐฐ์—ด์—์„œ ๊ฐ’์„ ๋ฐ”๊ฟ”๋„ ์›๋ณธ ๋ฐฐ์—ด๊ฐ’์€ ์œ ์ง€๋จ
Arrays.copyOfRange(๋ณต์‚ฌํ•  ๋ฐฐ์—ด, ๋ณต์‚ฌ ์‹œ์ž‘ ์ธ๋ฑ์Šค, ๋ณต์‚ฌ ๋ ์ธ๋ฑ์Šค)
  • ํšจ์œจ์ ์ธ ๋ฐฐ์—ด ๋ณต์‚ฌ
    • ์›ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Œ → ํšจ์œจ์ 
    • ๋ถˆํ•„์š”ํ•œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐฉ์ง€ → ๋ฉ”๋ชจ๋ฆฌ ์ž์› ๋‚ญ๋น„ → ์†๋„ ํ–ฅ์ƒ
    System.arraycopy(arr, arrPos, dest, destPos, length);
    
    arr - ์›๋ณธ ๋ฐฐ์—ด
    arrPos - ์›๋ณธ ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ ์‹œ์ž‘ ์œ„์น˜
    dest - ๋ณต์‚ฌํ•  ๋ฐฐ์—ด
    destPos - ๋ณต์‚ฌํ•  ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ ์‹œ์ž‘ ์œ„์น˜
    length - ๋ณต์‚ฌํ•  ์š”์†Œ ๊ฐœ์ˆ˜

๐Ÿ’œ ์˜ค๋Š˜์˜ ์ƒ๊ฐ ์กฐ๊ฐ๋ชจ์Œ

  • ์˜ค๋Š˜๋ถ€ํ„ฐ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ธ์…˜์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค. ์ง„ํ–‰ํ•˜์‹œ๋Š” ์—”์ง€๋‹ˆ์–ด๋‹˜ ์ฐจ๋ถ„์ฐจ๋ถ„ํ•˜๋‹ˆ ์ž˜ ์•Œ๋ ค์ฃผ์‹œ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณ ์–‘์ด ๊ท€์—ฝ๋‹ค.๐Ÿ˜ป
  • ๋ฐ์ผ๋ฆฌ์ฝ”๋”ฉ์œผ๋กœ ์—‰๋šฑํ•œ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ–ˆ๋‹ค. ํšŒ๊ณ ์— ์ ์€ 1์ผ 1์ปค๋ฐ‹์˜ ์‹œ์ž‘์ด์—ˆ๋Š”๋ฐ ์‹œ์ž‘๋ถ€ํ„ฐ...!๐Ÿคฃ ์ €๋…์ด ๋˜์–ด์„œ์•ผ ํ™•์ธํ–ˆ๋Š”๋ฐ, ์ €๋ฒˆ์— ์ •๋ง ์žฌ๋ฐŒ๊ฒŒ ํ’€์—ˆ๋˜ ์ปฌ๋ ‰์…˜ ๋ฌธ์ œ๋ผ ๋ฐ˜๊ฐ€์› ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ๊ฒŒ ํ’€๋ ค์„œ ๋‹นํ™ฉ์Šค๋Ÿฌ์› ์ง€๋งŒ ์ปค๋ฐ‹๊นŒ์ง€ ํ•ด์„œ ๋ฟŒ๋“ฏํ–ˆ๋‹ค.
  • ์žฌ๊ท€ํ•จ์ˆ˜ ์˜ˆ์‹œ ๋ฌธ์ œ์—์„œ ๋ฌธ์ œ๋ฅผ ์™œ ์ €๋ ‡๊ฒŒ ์ชผ๊ฐœ๋Š”์ง€ ์ดํ•ด๊ฐ€ ์•ˆ ๋˜๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ €๋ ‡๊ฒŒ ์ชผ๊ฐœ๋ƒ... ๋‚ด๊ฐ€ ์ชผ๊ฐœ์ง€๊ฒ ๋„ค ํ•˜๋‹ค๊ฐ€ ๋„์ €ํžˆ ์•ˆ๋˜์–ด ์ฒœ์‚ฌ๋‹˜๊ป˜ SOS๋ฅผ ์ณค๋”๋‹ˆ ์•„์ฃผ ์นœ์ ˆํ•˜๊ฒŒ ์˜ˆ์ œ๋ฅผ ๊ฐ™์ด ํ•ด๋ณด๋ฉด์„œ ์•Œ๋ ค์ฃผ์…จ๋‹ค!๐Ÿ˜‡ ์„ค๋ช…์„ ๋“ฃ๊ณ  ๋‹ค์‹œ ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํ•ด๋ฅผ ํ•ด๋ดค๋Š”๋ฐ ๋ญ”๊ฐ€ ์‹œ์•ผ๊ฐ€ ํŠธ์ธ ๊ฒƒ ๊ฐ™์€ ๊ธฐ๋ถ„์ด ๋“ค์—ˆ๋‹ค! ์ด ์€ํ˜œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐš์ฃ ..? ๐Ÿชถ
  • ์žฌ๊ท€๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฆญ๊ณผ ๋•Œ๋ฌธ์— ์‹ค๋ฌด์—์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค..๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์žฌ๊ท€๋ฅผ ๊ณต๋ถ€ํ•˜๋Š”๊ฒŒ ๋งž๋Š”๊ฑด๊ฐ€ ์˜์‹ฌ์Šค๋Ÿฝ์ง€๋งŒ, ๊ทธ๋Ÿผ์—๋„ ๋ฐฐ์šฐ๋Š” ์ด์œ ๋Š” ์•Œ๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๋ชจ๋ฅด๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋” ๋‚˜์•„๊ฐ€ ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ ๋ฅผ ํ•˜๊ณ  ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ์ฝ๊ณ  ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค. ๋Š๋ ค๋„ ๊พธ์ค€ํ•˜๊ฒŒ ๋ ๋•Œ๊นŒ์ง€ ํ•˜๋‹ค๋ณด๋ฉด ๋˜ ์ต์ˆ™ํ•ด์ง€๊ฒ ์ง€~๐Ÿ€
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ ํ• ๊ฑฐ๋‹ค. ํ™”์ดํŒ…๐Ÿ”ฅ
Comments