๐ŸŒฑ → ๐ŸŒณ

[Baekjoon] 7490. 0 ๋งŒ๋“ค๊ธฐ - python ๋ณธ๋ฌธ

Algorithms

[Baekjoon] 7490. 0 ๋งŒ๋“ค๊ธฐ - python

BAY 2023. 10. 2. 21:41
728x90

https://www.acmicpc.net/problem/7490

 

7490๋ฒˆ: 0 ๋งŒ๋“ค๊ธฐ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ASCII ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ 0์ด ๋˜๋Š” ๋ชจ๋“  ์ˆ˜์‹์„ ์ถœ๋ ฅํ•œ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฒฐ๊ณผ๋Š” ํ•œ ์ค„์„ ๋„์›Œ ๊ตฌ๋ถ„ํ•œ๋‹ค.

www.acmicpc.net

์„ค๊ณ„ ๋ฐฉ๋ฒ•

์žฌ๊ท€

sum : ํ˜„์žฌ๊นŒ์ง€์˜ ์—ฐ์‚ฐ๊ฐ’

sign : ๋‹ค์Œ ์—ฐ์‚ฐ์— num๊ณผ ํ•จ๊ป˜ ๋“ค์–ด๊ฐˆ ์—ฐ์‚ฐ์ž(+๋Š” 1๋กœ, -๋Š” -1๋กœ ํ‘œํ˜„, ๋นˆ์นธ์ด ๋“ค์–ด๊ฐˆ๋–„๋Š” ๋ฌด์˜๋ฏธํ•จ)

num : ๋‹ค์Œ์— ์—ฐ์‚ฐ๋  ์ˆซ์ž

n : ๋ช‡๋ฒˆ์งธ ํ•ญ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„

string : ํ˜„์žฌ๊นŒ์ง€์˜ ํ‘œํ˜„์‹

์ฝ”๋“œ

 

def recur(sum, sign, num, n, string):
  if (n == N):
    sum = sum + (sign*num)
    if sum == 0:
      print(string)
  else:
    recur(sum ,sign ,num*10+(n+1), n+1, string+' '+str(n+1))
    recur(sum+sign*num ,1 ,(n+1), n+1, string+'+'+str(n+1))
    recur(sum+sign*num, -1, (n+1), n+1, string+'-'+str(n+1))
      
test_case = int(input())

for _ in range(test_case):
  N = int(input())
  recur(0,1,1,1,"1")
  print()

 

์ฐธ๊ณ  : https://velog.io/@tks7205/%EB%B0%B1%EC%A4%80-7490-0%EB%A7%8C%EB%93%A4%EA%B8%B0backtracking

 

728x90