Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
    • ๐Ÿ’ปBackend (10)
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ† ์ต์‹œํ—˜
  • ๊ทธ๋ฆฌ๋””
  • Union
  • ํ† ์ต์ ์ˆ˜
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • sort
  • ํ† ์ต๊ธฐ์ถœ
  • UNION ALL
  • ๋ฐฑ์ค€
  • Python
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • ๋ฆฌ์ŠคํŠธ
  • ์˜ค๋ธ”์™„
  • ํ† ์ต๋…ํ•™
  • ํ† ์ตRC
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • greedy algorithm
  • mysql
  • ์ •๋ ฌ
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ํ•ด์ปค์Šคํ† ์ต
  • ์™„์ „ํƒ์ƒ‰
  • BFS
  • BaekJoon
  • ๋‚ด์žฅํ•จ์ˆ˜
  • ํ† ์ต๊ณต๋ถ€
  • ์ฝ”ํ…Œ
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ๊ตฌํ˜„
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

๐Ÿ“‚Language/Python

[Python] ํ•จ์ˆ˜ ์•ˆ์— ํ•จ์ˆ˜ | ๋‚ด๋ถ€ ํ•จ์ˆ˜ - ์™ธ๋ถ€ ํ•จ์ˆ˜

2023. 2. 18. 16:13

Python์˜ ๋‚ด๋ถ€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ํ’€์ด๋ฅผ ๋ณธ์ ์ด ์žˆ์–ด์„œ

ํ•ด๋‹น ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์‹ถ์—ˆ๋‹ค.

 

์ฝ”ํ…Œ ๋ฌธ์ œ ํ˜•์‹์€ ๋ฐฑ์ค€์ฒ˜๋Ÿผ ์ž…๋ ฅ์„ ์Šค์Šค๋กœ ๋ฐ›๋Š” ํ˜•์‹์ด ์•„๋‹ˆ๋ผ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฒ˜๋Ÿผ ํ•จ์ˆ˜๋‚ด๋ถ€๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

 

๋˜ํ•œ DFS๋‚˜ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์—

ํ•„์š”ํ•œ ๋‚ด์šฉ์ด๋ผ ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

 

 


 

 

 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ์ผ๋ฐ˜์ ์ธ ํ˜•์‹์„ ๋จผ์ € ์‚ดํŽด๋ณด์ž

ํ•ด๋‹น solution์— n์ธ์ž๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹ ์ฑ„์ ์ด ์ง„ํ–‰๋  ๊ฒƒ์ด๋‹ค.

def solution(n):
	answer = n + 1
    return answer
    
print(solution(10))  # 11

 

๋งŒ์•ฝ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํƒœ์—์„œ solution๋‚ด๋ถ€์— ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ

์‚ฌ์šฉํ•˜๊ณ ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๊ฒ ๋Š”๊ฐ€?

 

ํ•จ์ˆ˜ ์•ˆ์— ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค!

๋‹ค์Œ์€ node๋ฅผ 3๊ฐœ ๋ฐฉ๋ฌธํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค

def solution():
	
    def dfs(level):
    	if level != 3:
        	dfs(level+1)
            
    dfs(0)

์—ฌ๊ธฐ์„œ solutionํ•จ์ˆ˜๋Š” ์™ธ๋ถ€ํ•จ์ˆ˜

dfsํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€ํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

๋‹น์—ฐํžˆ solution๋„ ํ•จ์ˆ˜์ด๋ฏ€๋กœ ํ˜ธ์ถœํ•ด์•ผ ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค

ํ˜„ ์ƒํƒœ์—์„œ solution์„ ํ˜ธ์ถœํ•ด๋„ ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ์ถœ๋ ฅํ•˜์ง€ ์•Š์•˜๋‹ค.

 

 

 

์กฐ๊ธˆ ๋” ๋‚˜์•„๊ฐ€์„œ

"dfsํ•จ์ˆ˜๋Š” solution์•ˆ์— ์žˆ์œผ๋‹ˆ๊นŒ solution์— ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ?"

ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค๋ฉด ๋ฐ•์ˆ˜๐Ÿ‘

 

 

๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž

def solution():
    answer = 0:
    
    def dfs(level):
    	if level != 3:
        	answer += 1
        	dfs(level+1)
            
    dfs(0)
    return answer
    
    
print(solution())

์ •๋‹ต์€ 3! ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค๋ฉด ์•„์‰ฝ๊ฒŒ๋„ ํ‹€๋ ธ๋‹ค.

ํ•ด๋‹น ์ฝ”๋“œ์—์„œ๋Š” dfs๋‚ด๋ถ€ answer += 1 ๋ถ€๋ถ„์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

"์ด๊ฑฐ ์•Œ๋ ค ์ฃผ์ง€ ์•Š์€ ๋ณ€์ˆ˜๋ผ์„œ +1 ๋ชปํ•ด"

๋ผ๋Š” ๋‚ด์šฉ์˜ ์˜ค๋ฅ˜์ด๋‹ค

 

solution๋‚ด๋ถ€์—์„œ dfs๋ถˆ๋ €๊ณ , solution ์•„์ง ์•ˆ ๋๋‚ฌ๋Š”๋ฐ?!ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜๋งŒ ๋” ๋ณด๋„๋ก ํ•˜์ž

def solution():
    node = 'node'

    def dfs(level):
        if level != 3:
            print(node, level)
            dfs(level + 1)

    dfs(0)



solution()
#node 0
#node 1
#node 2

solution์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋…ธ๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”

ํ•ด๋‹น ์ฝ”๋“œ๋Š” ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•œ๋‹ค.

์ฆ‰, ์•„๊นŒ ์ƒ๊ฐํ•œ๋Œ€๋กœ ๋‚ด๋ถ€ํ•จ์ˆ˜์—์„œ๋Š” ์™ธ๋ถ€ํ•จ์ˆ˜์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค

 

 

๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ, ํ•จ์ˆ˜๋Š” ์ง€์—ญ ๋ณ€์ˆ˜์—์„œ๋ถ€ํ„ฐ ๋„“ํ˜€๊ฐ€๋ฉฐ

๋ณ€์ˆ˜๋ฅผ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€์— ์„ ์–ธ๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ คํ•˜๋‹ˆ ์˜ค๋ฅ˜๋ฅผ ๋‚ด๋Š” ๊ฒƒ์ด๋‹ค!

 

๊ทธ๋ž˜์„œ ์‚ฌ์šฉํ•  ๊ฒƒ์€ nonlocal

def solution():
    answer = 0

    def dfs(level):
        nonlocal answer
        if level != 3:
            answer += 1
            dfs(level + 1)

    dfs(0)
    print(answer)

solution()
# 3

์ด์ œ์„œ์•ผ  3๊ฐœ์˜ node๋ฅผ ๊ฑฐ์ณค๋‹ค๋Š” ์˜๋ฏธ์˜ ์•Œ๋งž์€ ๋‹ต 3์ด ๋‚˜์™”๋‹ค..!

 

 

nonlocal <๋ณ€์ˆ˜๋ช…>์€

์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฐ–์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค

 

 

 

 

 

์ง€๊ธˆ๊นŒ์ง€ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์‘์šฉํ•œ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ’€๊ฒŒ ๋  ๊ฒƒ์ด ๊ธฐ๋Œ€๋œ๋‹ค..!

 


REFERENCE

https://dojang.io/mod/page/view.php?id=2365 

 

ํŒŒ์ด์ฌ ์ฝ”๋”ฉ ๋„์žฅ: 33.2 ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ

์ด๋ฒˆ์—๋Š” ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด def๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์—์„œ ๋‹ค์‹œ def๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค. def ํ•จ์ˆ˜์ด๋ฆ„1():     ์ฝ”๋“œ     def ํ•จ์ˆ˜์ด๋ฆ„2():    

dojang.io

 

'๐Ÿ“‚Language > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] List๋ผ๋ฆฌ ์—ฐ์‚ฐ | zip | numpy | map  (0) 2023.03.28
[Python] ์ž…๋ ฅ ์ฒ˜๋ฆฌ ์ •๋ฆฌ | input | readline | ๊ณ„์† ์ž…๋ ฅ ๋ฐ›๊ธฐ | ๋ฆฌ์ŠคํŠธ๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐ  (0) 2023.02.05
    '๐Ÿ“‚Language/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] List๋ผ๋ฆฌ ์—ฐ์‚ฐ | zip | numpy | map
    • [Python] ์ž…๋ ฅ ์ฒ˜๋ฆฌ ์ •๋ฆฌ | input | readline | ๊ณ„์† ์ž…๋ ฅ ๋ฐ›๊ธฐ | ๋ฆฌ์ŠคํŠธ๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐ
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”