๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] ํƒ€๊ฒŸ ๋„˜๋ฒ„

๋ฟŒ์•ผ._. 2021. 4. 4. 17:55

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊นŠ์ด/๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(DFS/BFS)


<ํƒ€๊ฒŸ ๋„˜๋ฒ„>

๋ฌธ์ œ ์„ค๋ช…

 

n๊ฐœ์˜ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ˆ˜๋ฅผ ์ ์ ˆํžˆ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ์„œ ํƒ€๊ฒŸ ๋„˜๋ฒ„๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด [1, 1, 1, 1, 1]๋กœ ์ˆซ์ž 3์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹ค์„ฏ ๋ฐฉ๋ฒ•์„ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers, ํƒ€๊ฒŸ ๋„˜๋ฒ„ target์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์ˆซ์ž๋ฅผ ์ ์ ˆํžˆ ๋”ํ•˜๊ณ  ๋นผ์„œ ํƒ€๊ฒŸ ๋„˜๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

์ œํ•œ ์‚ฌํ•ญ

 

- ์ฃผ์–ด์ง€๋Š” ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋Š” 2๊ฐœ ์ด์ƒ 20๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
- ๊ฐ ์ˆซ์ž๋Š” 1 ์ด์ƒ 50 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
- ํƒ€๊ฒŸ ๋„˜๋ฒ„๋Š” 1 ์ด์ƒ 1000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

๋ฌธ์ œ ํ’€์ด

  - my solution

def solution(numbers, target):
    answer = 0
    
    root=[0] #์ฒ˜์Œ 0๋ถ€ํ„ฐ ์‹œ์ž‘
    
    for i in numbers: #numbers์—์„œ ์ˆซ์ž๋ฅผ ๋ฐ›์•„์™€ root๊ฐ’์— ๋”ํ•ด์ฃผ๊ณ  ๋นผ์ฃผ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ 
        temp=[]
        for j in root:
            temp.append(j+i)
            temp.append(j-i)
            root=temp #temp๊ฐ’์„ root๋กœ ๋งŒ๋“ค์–ด์คŒ
    
    answer=temp.count(target) #์ตœ์ข… ๊ฒฐ๊ณผ ๊ฐ’์—์„œ ์›ํ•˜๋Š” target ๊ฐ’์ด ๋ช‡๊ฐœ ์žˆ๋Š”์ง€ ํ™•์ธ
    
    return answer

1) root๋ฅผ 0 ํ•˜๋‚˜ ๋‘๋„๋ก ์„ค์ •

2) numbers์˜ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜ ๋ฐ›์•„์™€ root์™€ ํ•จ๊ป˜ ๊ณ„์‚ฐํ•ด์ค˜์•ผ ํ•จ

   2-1) ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ ์„ ์–ธ

   2-2) root์˜ ๊ฐ’๊ณผ ๊ณ„์‚ฐํ•œ ํ›„ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ๊ณ  root์— ๋Œ€์ž…

3) temp๋ฆฌ์ŠคํŠธ์— ์›ํ•˜๋Š” ๊ฐ’์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ํ™•์ธ


์ƒ๊ฐ๐Ÿค”

 

์ฒ˜์Œ์— ๊นŠ์ด/๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ๋ฌธ์ œ๋ผ๊ณ  ํ•ด์„œ ๊ฒ๋ถ€ํ„ฐ ๋จน์—ˆ๋˜ ๋ฌธ์ œ์ด๋‹ค.

์‚ฌ์‹ค ์˜ˆ์ „๋ถ€ํ„ฐ ๋ช‡๋ฒˆ์ด๋‚˜ ์ด ๋ฌธ์ œ๋ฅผ ๋ดค์ง€๋งŒ ๋ชจ๋ฅด๋Š” ์ฒ™ ๋„˜๊ธฐ๊ธฐ๐Ÿ˜ฅ

์ด๋ฒˆ์— ํ•œ๋ฒˆ ํ’€์–ด๋ณด์ž ํ•ด์„œ ๋ดค์ง€๋งŒ ์ž˜ ๋ชจ๋ฅด๊ฒŒ์จ์š”..๐Ÿ˜• ๊ฒฐ๊ตญ ๊ฒ€์ƒ‰์˜ ํž˜์„ ์กฐ๊ธˆ ๋นŒ๋ ธ๋‹ค๐Ÿ˜ต

์„ค๋ช…์„ ๋ดค๋Š”๋ฐ ์•„๋‹ˆ, ์ด๊ฒŒ ์ด๋ ‡๊ฒŒ ์‰ฌ์šด ๋ฌธ์ œ์˜€๋‹ค๊ตฌ?๐Ÿคจ


 

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges