๊ธ€ ์ž‘์„ฑ์ž: ๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํŠœํ”Œ

"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

์…€์ˆ˜์žˆ๋Š” ์ˆ˜๋Ÿ‰์˜ ์ˆœ์„œ์žˆ๋Š” ์—ด๊ฑฐ ๋˜๋Š” ์–ด๋–ค ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฅด๋Š” ์š”์†Œ๋“ค์˜ ๋ชจ์Œ์„ ํŠœํ”Œ(tuple)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. n๊ฐœ์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ํŠœํ”Œ์„ n-ํŠœํ”Œ(n-tuple)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • (a1, a2, a3, ..., an)

ํŠœํ”Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ค‘๋ณต๋œ ์›์†Œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ex : (2, 3, 1, 2)
  2. ์›์†Œ์— ์ •ํ•ด์ง„ ์ˆœ์„œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ์›์†Œ์˜ ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅด๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ํŠœํ”Œ์ž…๋‹ˆ๋‹ค. ex : (1, 2, 3) ≠ (1, 3, 2)
  3. ํŠœํ”Œ์˜ ์›์†Œ ๊ฐœ์ˆ˜๋Š” ์œ ํ•œํ•ฉ๋‹ˆ๋‹ค.

์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ n๊ฐœ์ด๊ณ , ์ค‘๋ณต๋˜๋Š” ์›์†Œ๊ฐ€ ์—†๋Š” ํŠœํ”Œ (a1, a2, a3, ..., an)์ด ์ฃผ์–ด์งˆ ๋•Œ(๋‹จ, a1, a2, ..., an์€ ์ž์—ฐ์ˆ˜), ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง‘ํ•ฉ ๊ธฐํ˜ธ '{', '}'๋ฅผ ์ด์šฉํ•ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}

์˜ˆ๋ฅผ ๋“ค์–ด ํŠœํ”Œ์ด (2, 1, 3, 4)์ธ ๊ฒฝ์šฐ ์ด๋Š”

  • {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}

์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ์ง‘ํ•ฉ์€ ์›์†Œ์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ์ƒ๊ด€์—†์œผ๋ฏ€๋กœ

  • {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
  • {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}}
  • {{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}}

๋Š” ๋ชจ๋‘ ๊ฐ™์€ ํŠœํ”Œ (2, 1, 3, 4)๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

ํŠน์ • ํŠœํ”Œ์„ ํ‘œํ˜„ํ•˜๋Š” ์ง‘ํ•ฉ์ด ๋‹ด๊ธด ๋ฌธ์ž์—ด s๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, s๊ฐ€ ํ‘œํ˜„ํ•˜๋Š” ํŠœํ”Œ์„ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

ํ’€์ด

๋ฌธ์ œ์—์„œ ์ค‘๋ณต๋˜๋Š” ์›์†Œ๊ฐ€ ์—†๋Š” ํŠœํ”Œ์€

  • {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}

์ด๋ ‡๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์—์„œ ํžŒํŠธ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆœ์„œ๋ฅผ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— a1,...,an์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์›์†Œ๊ฐ€ ํ•˜๋‚˜์žˆ๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์–ป์–ด๋‚ด๋ฉด ์›์†Œ์˜ ์ˆœ์„œ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,

  • {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}}

์˜ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์›์†Œ๊ฐ€ ํ•˜๋‚˜๋ฟ์ธ {2}๋ฅผ ๋ฝ‘์•„๋‚ด๊ณ  ์›์†Œ๋ฅผ ๊บผ๋‚ด ์ •๋‹ต ๋ฐฐ์—ด์— ๋„ฃ์Šต๋‹ˆ๋‹ค. [2]
  • 2์˜ ์ˆœ์„œ๋ฅผ ์•Œ์•„๋ƒˆ์œผ๋‹ˆ 2๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋Š” {2, 1} ์„ ์‚ฌ์šฉํ•˜๋ฉด 1์˜ ์ˆœ์„œ๋„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต๋˜๋Š” 2๋Š” ๋„ฃ์ง€ ์•Š๊ณ  1๋งŒ ์ •๋‹ต ๋ฐฐ์—ด์— ๋„ฃ์Šต๋‹ˆ๋‹ค. [2, 1]
  • 2์™€ 1์„ ํฌํ•จํ•˜๋Š” ๋‹ค์Œ ํŠœํ”Œ์ธ {2, 1, 3}์„ ์‚ฌ์šฉํ•˜๋ฉด [2, 1, 3] ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ {2, 1, 3, 4}๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด [2, 1, 3, 4]๋ฅผ ์–ป๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์„ ํŠœํ”Œ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•œ ๋’ค์—, ๋‚ด๋ถ€์— ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ์ฐจ๋ก€๋Œ€๋กœ ์ •๋‹ต๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์ •๋‹ต์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ