๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Problem Solving/ALGORITHM

์ˆœ์—ด/๊ฐ€์ง€์น˜๊ธฐ

by DevIseo 2022. 3. 15.
#back tracking
#์ฒ˜์Œ์— 2๊ฐ€ ๋‚˜์˜ค๋ฉด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ ๋งŒ๋“ค๊ธฐ
n = int(input())
arr = [1,2,3,4,5,6]
path=['']*n
used=[0]*6
def abc(level):
    if path[0] == 2:
        return #back tracking
    if level == n:
        for i in range(n):
            print(path[i],end=' ')
        print()
        return

    for i in range(6):
        # if level == 0 and arr[i] == 2:
        #     continue
        path[level] = arr[i]
        abc(level+1)
        path[level]=0
abc(0)โ€‹

#back tracking
n = int(input())
arr = [1,2,3,4,5,6]
path=['']*n
used=[0]*6

def abc(level):
    if level>1 and (path[level-1]==path[level-2]):
        return
    
    if level == n:
        for i in range(n):
            print(path[i],end=' ')
        print()
        return

    for i in range(6):
        # if level>0 and (path[level-1]==arr[i]): #path[level-1] == ๋“ค์–ด์˜จ๊ณณ, arr[i]== ๋“ค์–ด๊ฐˆ ๊ณณ
        #     continue
        path[level] = arr[i]
        abc(level+1)

        path[level]=0
abc(0)

#์ง„์ž…์„ ์•„์˜ˆ ์•ˆํ•˜๋Š” ๊ฒฝ์šฐ
n = int(input())
arr = [1,2,3,4,5,6]
path=['']*n
used=[0]*6

def abc(level):
    if level == n:
        for i in range(n):
            print(path[i],end=' ')
        print()
        return

    for i in range(6):
        if level == 0 and arr[i] == 2:
            continue
        path[level] = arr[i]
        abc(level+1)
        path[level]=0
abc(0)

#back tracking
#์ฒ˜์Œ์— 2๊ฐ€ ๋‚˜์˜ค๋ฉด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ ๋งŒ๋“ค๊ธฐ
n = int(input())
arr = [1,2,3,4,5,6]
path=['']*n
used=[0]*6
def abc(level):
    if path[0] == 2:
        return #back tracking
    if level == n:
        for i in range(n):
            print(path[i],end=' ')
        print()
        return

    for i in range(6):
        # if level == 0 and arr[i] == 2:
        #     continue
        path[level] = arr[i]
        abc(level+1)
        path[level]=0
abc(0)

๋Œ“๊ธ€