Algorithm

221025 [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] :: ํฐ์ผ“๋ชฌ, ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜, ํ”ผ๋กœ๋„

kohi โ˜• 2022. 10. 26. 00:27
ํฐ์ผ“๋ชฌ
๐Ÿ‘พ ๋ฌธ์ œ ์„ค๋ช…
๋‹น์‹ ์€ ํฐ์ผ“๋ชฌ์„ ์žก๊ธฐ ์œ„ํ•œ ์˜ค๋žœ ์—ฌํ–‰ ๋์—, ํ™ ๋ฐ•์‚ฌ๋‹˜์˜ ์—ฐ๊ตฌ์‹ค์— ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™ ๋ฐ•์‚ฌ๋‹˜์€ ๋‹น์‹ ์—๊ฒŒ ์ž์‹ ์˜ ์—ฐ๊ตฌ์‹ค์— ์žˆ๋Š” ์ด N ๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ ์ค‘์—์„œ N/2๋งˆ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋„ ์ข‹๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.ํ™ ๋ฐ•์‚ฌ๋‹˜ ์—ฐ๊ตฌ์‹ค์˜ ํฐ์ผ“๋ชฌ์€ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์€ ๊ฐ™์€ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฐ๊ตฌ์‹ค์— ์ด 4๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ์ด ์žˆ๊ณ , ๊ฐ ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๊ฐ€ [3๋ฒˆ, 1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ]์ด๋ผ๋ฉด ์ด๋Š” 3๋ฒˆ ํฐ์ผ“๋ชฌ ๋‘ ๋งˆ๋ฆฌ, 1๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ, 2๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋•Œ, 4๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ ์ค‘ 2๋งˆ๋ฆฌ๋ฅผ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 6๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ์ฒซ ๋ฒˆ์งธ(3๋ฒˆ), ๋‘ ๋ฒˆ์งธ(1๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  2. ์ฒซ ๋ฒˆ์งธ(3๋ฒˆ), ์„ธ ๋ฒˆ์งธ(2๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  3. ์ฒซ ๋ฒˆ์งธ(3๋ฒˆ), ๋„ค ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  4. ๋‘ ๋ฒˆ์งธ(1๋ฒˆ), ์„ธ ๋ฒˆ์งธ(2๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  5. ๋‘ ๋ฒˆ์งธ(1๋ฒˆ), ๋„ค ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  6. ์„ธ ๋ฒˆ์งธ(2๋ฒˆ), ๋„ค ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
์ด๋•Œ, ์ฒซ ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ๊ณผ ๋„ค ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ•œ ์ข…๋ฅ˜(3๋ฒˆ ํฐ์ผ“๋ชฌ ๋‘ ๋งˆ๋ฆฌ)์˜ ํฐ์ผ“๋ชฌ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋“ค์€ ๋ชจ๋‘ ๋‘ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„ ์˜ˆ์‹œ์—์„œ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์€ 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.๋‹น์‹ ์€ ์ตœ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์ง€๊ธธ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ํฌํ•จํ•ด์„œ N/2๋งˆ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. N๋งˆ๋ฆฌ ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด nums๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, N/2๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘, ๊ฐ€์žฅ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„, ๊ทธ๋•Œ์˜ ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ‘พ ์ œํ•œ ์‚ฌํ•ญ
  • nums๋Š” ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด 1์ฐจ์› ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • nums์˜ ๊ธธ์ด(N)๋Š” 1 ์ด์ƒ 10,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ํ•ญ์ƒ ์ง์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๋Š” 1 ์ด์ƒ 200,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋„, ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’ ํ•˜๋‚˜๋งŒ return ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ‘พ ๋‚˜์˜ ๋‹ต์•ˆ

function solution(nums) {
    const set = Array.from(new Set(nums));
    return set.length < nums.length / 2 ? set.length : nums.length / 2;
}

 

  • set์œผ๋กœ ์ค‘๋ณต ์ œ๊ฑฐ
  • nums์˜ ๊ธธ์ด๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ๊ฐ’์ด  set์˜ ๊ธธ์ด๋ณด๋‹ค ํฌ๋ฉด set์˜ ๊ธธ์ด ๋ฐ˜ํ™˜, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด nums.length / 2 ๋ฐ˜ํ™˜

 

์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜
๐Ÿ‘พ ๋ฌธ์ œ ์„ค๋ช…
์ฒ ํ˜ธ๋Š” ์ˆ˜์—ด์„ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋Š ๋‚  ์ฒ ํ˜ธ๋Š” ์–ด๋–ค ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์›ํ˜• ์ˆ˜์—ด์˜ ์—ฐ์†ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๋ช‡ ๊ฐ€์ง€์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ์‹ถ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์›ํ˜• ์ˆ˜์—ด์ด๋ž€ ์ผ๋ฐ˜์ ์ธ ์ˆ˜์—ด์—์„œ ์ฒ˜์Œ๊ณผ ๋์ด ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ์˜ ์ˆ˜์—ด์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆ˜์—ด [7, 9, 1, 1, 4] ๋กœ ์›ํ˜• ์ˆ˜์—ด์„ ๋งŒ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์›ํ˜• ์ˆ˜์—ด์€ ์ฒ˜์Œ๊ณผ ๋์ด ์—ฐ๊ฒฐ๋˜์–ด ๋Š๊ธฐ๋Š” ๋ถ€๋ถ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์†ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด๋„ ์ผ๋ฐ˜์ ์ธ ์ˆ˜์—ด๋ณด๋‹ค ๋งŽ์•„์ง‘๋‹ˆ๋‹ค.
์›ํ˜• ์ˆ˜์—ด์˜ ๋ชจ๋“  ์›์†Œ elements๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์›ํ˜• ์ˆ˜์—ด์˜ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ‘พ ์ œํ•œ ์‚ฌํ•ญ
  • 3 ≤ elements์˜ ๊ธธ์ด ≤ 1,000
  • 1 ≤ elements์˜ ์›์†Œ ≤ 1,000

 

๐Ÿ‘พ ๋‚˜์˜ ๋‹ต์•ˆ

function solution(elements) {
    const elementsLoop = [...elements, ...elements];
    const arr = [];
    for (let i = 0; i < elements.length; i++) {
        for (let j = 0; j < elements.length; j++) {
            let k = i + j;
            arr.push(elementsLoop.slice(j, k).reduce((a, c) => a + c, 0));
        }
    }
    return Array.from(new Set(arr)).length;
}

 

  • ์›ํ˜• ์ˆ˜์—ด์ด๋ฏ€๋กœ elements๋ฅผ ๋‘ ๋ฒˆ ๋ฐ˜๋ณต
  • ์ด์ค‘ for๋ฌธ ์‚ฌ์šฉ, j๋ถ€ํ„ฐ k๊นŒ์ง€์˜ ํ•ฉ์„ ๋ฐฐ์—ด arr์— pushํ•ด ์ฃผ๊ณ  set์œผ๋กœ ์ค‘๋ณต ์ œ๊ฑฐ ํ›„ ๊ธธ์ด ๋ฐ˜ํ™˜
  • ํ•˜๋‚˜ํ•˜๋‚˜ ๊ฐ’ ๊ตฌํ•ด์„œ ๋„ฃ๋Š” ๊ฑฐ๋ผ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ ๋นจ๊ฐ„ ๋ถˆ ๋œฐ ์ค„ ์•Œ์•˜๋”๋‹ˆ ์•„๋‹ˆ๋„ค ๋‚˜์˜จ ์ง€ ์–ผ๋งˆ ์•ˆ ๋ผ์„œ ๊ทธ๋Ÿฐ๊ฐ€ ๋ด„

 

ํ”ผ๋กœ๋„
๐Ÿ‘พ ๋ฌธ์ œ ์„ค๋ช…
XX๊ฒŒ์ž„์—๋Š” ํ”ผ๋กœ๋„ ์‹œ์Šคํ…œ(0 ์ด์ƒ์˜ ์ •์ˆ˜๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค)์ด ์žˆ์œผ๋ฉฐ, ์ผ์ • ํ”ผ๋กœ๋„๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋˜์ „์„ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๊ฐ ๋˜์ „๋งˆ๋‹ค ํƒํ—˜์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"์™€ ๋˜์ „ ํƒํ—˜์„ ๋งˆ์ณค์„ ๋•Œ ์†Œ๋ชจ๋˜๋Š” "์†Œ๋ชจ ํ”ผ๋กœ๋„"๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"๋Š” ํ•ด๋‹น ๋˜์ „์„ ํƒํ—˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ํ”ผ๋กœ๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, "์†Œ๋ชจ ํ”ผ๋กœ๋„"๋Š” ๋˜์ „์„ ํƒํ—˜ํ•œ ํ›„ ์†Œ๋ชจ๋˜๋Š” ํ”ผ๋กœ๋„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"๊ฐ€ 80, "์†Œ๋ชจ ํ”ผ๋กœ๋„"๊ฐ€ 20์ธ ๋˜์ „์„ ํƒํ—˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ ์ €์˜ ํ˜„์žฌ ๋‚จ์€ ํ”ผ๋กœ๋„๋Š” 80 ์ด์ƒ ์ด์–ด์•ผ ํ•˜๋ฉฐ, ๋˜์ „์„ ํƒํ—˜ํ•œ ํ›„์—๋Š” ํ”ผ๋กœ๋„ 20์ด ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค.
์ด ๊ฒŒ์ž„์—๋Š” ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ์”ฉ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋˜์ „์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š”๋ฐ, ํ•œ ์œ ์ €๊ฐ€ ์˜ค๋Š˜ ์ด ๋˜์ „๋“ค์„ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ํƒํ—˜ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์œ ์ €์˜ ํ˜„์žฌ ํ”ผ๋กœ๋„ k์™€ ๊ฐ ๋˜์ „๋ณ„ "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„", "์†Œ๋ชจ ํ”ผ๋กœ๋„"๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด dungeons ๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์œ ์ €๊ฐ€ ํƒํ—˜ํ• ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋˜์ „ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ‘พ ์ œํ•œ ์‚ฌํ•ญ
  • k๋Š” 1 ์ด์ƒ 5,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • dungeons์˜ ์„ธ๋กœ(ํ–‰) ๊ธธ์ด(์ฆ‰, ๋˜์ „์˜ ๊ฐœ์ˆ˜)๋Š” 1 ์ด์ƒ 8 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
    • dungeons์˜ ๊ฐ€๋กœ(์—ด) ๊ธธ์ด๋Š” 2 ์ž…๋‹ˆ๋‹ค.
    • dungeons์˜ ๊ฐ ํ–‰์€ ๊ฐ ๋˜์ „์˜ ["์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„", "์†Œ๋ชจ ํ”ผ๋กœ๋„"] ์ž…๋‹ˆ๋‹ค.
    • "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"๋Š” ํ•ญ์ƒ "์†Œ๋ชจ ํ”ผ๋กœ๋„"๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • "์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„"์™€ "์†Œ๋ชจ ํ”ผ๋กœ๋„"๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • ์„œ๋กœ ๋‹ค๋ฅธ ๋˜์ „์˜ ["์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„", "์†Œ๋ชจ ํ”ผ๋กœ๋„"]๊ฐ€ ์„œ๋กœ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‹‰๊ฐ’ ์ œ๋Œ€๋กœ ํ•˜๋Š” ๋ฌธ์ œ

 

๐Ÿ‘พ ๋‚˜์˜ ๋‹ต์•ˆ

function solution(k, dungeons) {
    const arr = [];
    const checked = new Array(dungeons.length).fill(0);

    function DFS(k, dungeons, checked, cnt) {
        arr.push(cnt);
        for (let i = 0; i < dungeons.length; i++) {
            if (!checked[i] && k >= dungeons[i][0]) {
                checked[i] = 1;
                DFS(k - dungeons[i][1], dungeons, checked, cnt + 1);
                checked[i] = 0;
            }
        }
    }
    DFS(k, dungeons, checked, 0);
    return Math.max(...arr);
}

 

  • ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‹ด์„ arr๊ณผ ๋ฐฉ๋ฌธํ•œ ๋˜์ „์„ ์ฒดํฌํ•  checked ์„ ์–ธ
  • ๊ฒฝ์šฐ์˜ ์ˆ˜ cnt๋ฅผ arr์— ์ „๋ถ€ push, ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋˜์ „์ด๊ณ  ํ˜„์žฌ ํ”ผ๋กœ๋„(k)๋ณด๋‹ค ์ตœ์†Œ ํ•„์š” ํ”ผ๋กœ๋„๊ฐ€ ์ž‘์œผ๋ฉด ๋ฐฉ๋ฌธ ์ฒดํฌ
  • ์žฌ๊ท€ ํ•จ์ˆ˜ ์‚ฌ์šฉ, ํ˜„์žฌ ํ”ผ๋กœ๋„์—์„œ ์†Œ๋ชจ ํ”ผ๋กœ๋„๋ฅผ ๋นผ๊ณ  cnt ๊ฐ’์— 1 ๋”ํ•˜๊ณ  ๊ณ„์† ๋Œ์•„์คŒ, ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐฉ๋ฌธ ์ฒดํฌ ํ•ด์ œ
  • ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ค‘ ์ตœ๋Œ“๊ฐ’ ๋ฐ˜ํ™˜
  • ๋ฌธ์ œ ์˜†์— DFS๋ผ๊ณ  ์“ฐ์—ฌ ์žˆ์œผ๋ฉด ๋‚˜๋„ ๋ชจ๋ฅด๊ฒŒ ์Šคํ‚ตํ•ด ๋ฒ„๋ฆฌ์ง€๋งŒ... ์™ ์ง€ ๋‚˜ DFS๋ž‘ ์ข€ ์นœํ•ด์กŒ์„์ง€๋„