728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ๐Ÿ˜ต‍๐Ÿ’ซ

https://school.programmers.co.kr/learn/courses/30/lessons/43165

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋‚ด ํ’€๐Ÿฆท

class Solution {
    public int solution(int[] numbers, int target) {
        return dfs(numbers, target, 0, 0);
    }
    
    private int dfs(int[] numbers, int target, int index, int sum) {
        // ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋‹ค ์‚ฌ์šฉํ–ˆ์„ ๋–„
        if(index == numbers.length) {
            // ๋ชฉํ‘œ ์ˆซ์ž์™€ ํ•ฉ์ด ๊ฐ™์œผ๋ฉด ๊ฒฝ์šฐ์˜ ์ˆ˜ 1 ์ฆ๊ฐ€
            return sum == target ? 1 : 0;
        }
        // ํ˜„์žฌ ์ˆซ์ž๋ฅผ ๋”ํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๋นผ๋Š” ๊ฒฝ์šฐ๋กœ ์žฌ๊ท€ ํ˜ธ์ถฉ..
        return dfs(numbers, target, index + 1, sum + numbers[index]) + dfs(numbers, target, index + 1, sum - numbers[index]);
    }
}

 

์ด๋ฏธ ํ•œ๋ฒˆ ํ’€์—ˆ๋˜ dfs ๋ฌธ์ œ!!

๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๋ฅผ ๋‹ค ํƒ์ƒ‰ํ•˜์—ฌ ํŠน์ • ์กฐ๊ฑด์„ ์ฐพ์•„์•ผํ•˜๋Š” ๋ฌธ์ œ์ด๋ฏ€๋กœ dfs๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค

if๋ฌธ์„ ์“ฐ๋Š”๊ฒƒ๊นŒ์ง€๋Š” ์‰ฌ์šด๋ฐ ๋งˆ์ง€๋ง‰์— ์žฌ๊ท€๋ฅผ ์–ด๋–ป๊ฒŒ ์‹œ์ผœ์•ผํ•˜๋Š”์ง€๋Š” ํ•ญ์ƒ ๊ณ ๋ฏผ๋˜๋Š” ๋ถ€๋ถ„์ธ๊ฑฐ ๊ฐ™๋‹ค..

ํ•˜์ง€๋งŒ ์ด๋ฒˆ๋ฌธ์ œ๋Š” ์ˆ˜์›”ํ•˜๊ฒŒ ํ†ต๊ณผ~~

 

์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๊ฐœ๋…๋“ค โœ๏ธ

 

 DFS๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ํšจ๊ณผ์ ์ธ ๋ฌธ์ œ ์œ ํ˜•

  1. ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ํŠน์ • ์กฐ๊ฑด์„ ์ฐพ๋Š” ๊ฒฝ์šฐ : ์ฃผ์–ด์ง„ ์ˆซ์ž ๋ฐฐ์—ด์„ ๋”ํ•˜๊ณ  ๋นผ์„œ ํŠน์ • ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ
  2. ํ•ด๋‹ค ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒฝ์šฐ : ๋ฏธ๋กœ์—์„œ ์ถœ๊ตฌ๊นŒ์ง€ ๊ฐ€๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ
  3. ์กฐํ•ฉ๊ณผ ์ˆœ์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์ œ : ํŠน์ • ๊ธธ์ด์˜ ์กฐํ•ฉ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ์ˆœ์—ด์„ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ
  4. ๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ : N-Queens ๋ฌธ์ œ์ฒ˜๋Ÿผ ์ œํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ์„ ๋•Œ

 

DFS ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

- ๋ฌดํ•œ ๋ฃจํ”„ ์ฃผ์˜ : ์žฌ๊ท€ ํ˜ธ์ถœ์—์„œ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๋ช…ํ™•ํžˆ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

- ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ : ๊นŠ์ด๊ฐ€ ๊นŠ์–ด์งˆ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ปค์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๋„ˆ๋ฌด ๊นŠ์€ ์žฌ๊ท€ ํ˜ธ์ถœ์ด ํ•„์š”ํ•œ ๋ฌธ์ œ์—์„œ๋Š” ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์— ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

- ํƒ์ƒ‰ ์ตœ์ ํ™” : ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๊ฒฝ๋กœ๋Š” ์กฐ๊ธฐ์— ์ค‘๋‹จํ•˜์—ฌ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

 

728x90
๋ฐ˜์‘ํ˜•

+ Recent posts