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

[baekjoon]python #19949 ์˜์žฌ์˜ ์‹œํ—˜

by DevIseo 2022. 4. 14.

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

 

19949๋ฒˆ: ์˜์žฌ์˜ ์‹œํ—˜

์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ํ•™์ƒ์ธ ์˜์žฌ๋Š” ์ด๋ฒˆ ํ•™๊ธฐ์— ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…์„ ์ˆ˜๊ฐ•ํ•œ๋‹ค. ํ‰์†Œ์— ์ž์‹ ์˜ ์‹ค๋ ฅ์„ ๋งน์‹ ํ•œ ์˜์žฌ๋Š” ์‹œํ—˜ ์ „๋‚ ๊นŒ์ง€ ๊ณต๋ถ€๋ฅผ ํ•˜์ง€ ์•Š์•˜๋‹ค. ๋‹น์—ฐํ•˜๊ฒŒ๋„ ๋ฌธ์ œ๋ฅผ ํ•˜๋‚˜๋„ ํ’€์ง€ ๋ชปํ•˜์˜€์ง€๋งŒ ๋‹คํ–‰

www.acmicpc.net

๋ฌธ์ œ
์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ํ•™์ƒ์ธ ์˜์žฌ๋Š” ์ด๋ฒˆ ํ•™๊ธฐ์— ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…์„ ์ˆ˜๊ฐ•ํ•œ๋‹ค.
ํ‰์†Œ์— ์ž์‹ ์˜ ์‹ค๋ ฅ์„ ๋งน์‹ ํ•œ ์˜์žฌ๋Š” ์‹œํ—˜ ์ „๋‚ ๊นŒ์ง€ ๊ณต๋ถ€๋ฅผ ํ•˜์ง€ ์•Š์•˜๋‹ค.
๋‹น์—ฐํ•˜๊ฒŒ๋„ ๋ฌธ์ œ๋ฅผ ํ•˜๋‚˜๋„ ํ’€์ง€ ๋ชปํ•˜์˜€์ง€๋งŒ ๋‹คํ–‰ํžˆ๋„ ๋ฌธ์ œ๊ฐ€ 5์ง€ ์„ ๋‹ค์˜ ๊ฐ๊ด€์‹ 10๋ฌธ์ œ์˜€๋‹ค.
์ฐ๊ธฐ์—๋„ ์ž์‹  ์žˆ๋˜ ์˜์žฌ๋Š” 3๊ฐœ์˜ ์—ฐ์†๋œ ๋ฌธ์ œ์˜ ๋‹ต์€ ๊ฐ™์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค๋Š” ์ž์‹ ์˜ ๋น„๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ์ฐ์—ˆ๋‹ค.
์ด๋•Œ ์˜์žฌ์˜ ์ ์ˆ˜๊ฐ€ 5์  ์ด์ƒ์ผ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜์—ฌ๋ผ.
๋ฌธ์ œ์˜ ์ ์ˆ˜๋Š” 1๋ฌธ์ œ๋‹น 1์ ์”ฉ์ด๋‹ค.

 

์ž…๋ ฅ

์‹œํ—˜์˜ ์ •๋‹ต์ด ์ฒซ ์ค„์— ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์˜์žฌ์˜ ์ ์ˆ˜๊ฐ€ 5์  ์ด์ƒ์ผ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ๋ผ.

 

์˜ˆ์ œ ์ž…๋ ฅ1

1 2 3 4 5 1 2 3 4 5

์˜ˆ์ œ ์ถœ๋ ฅ1

261622

 

def dfs(level):
    global cnt
    if level == 10: #level 10 -10๋ฌธ์ œ
        grade = 0 #๋งž์€ ๊ฐฏ์ˆ˜
        for j in range(10):
            if visit[j] == arr[j]: #์˜์žฌ์˜ ๋‹ต๊ณผ ์ •๋‹ต์ด ๊ฐ™์„ ๋•Œ
                grade+=1 #์ ์ˆ˜ +1
        if grade >=5: #5์  ์ด์ƒ์ผ ๋•Œ
            cnt+=1 #๊ฒฝ์šฐ์˜ ์ˆ˜ ์ถ”๊ฐ€!
        return

    for i in range(1,6): #5์ง€์„ ๋‹ค branch 5
        # ์˜์žฌ๊ฐ€ 3๊ฐœ์˜ ์—ฐ์†๋œ ๋ฌธ์ œ์˜ ๋‹ต์€ ๊ฐ™์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•
        if level > 1 and visit[level-2] == visit[level-1] == i:continue
        
        #3๊ฐœ๊ฐ€ ์—ฐ์†๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด
        visit.append(i)
        dfs(level+1)
        visit.pop()

arr = list(map(int,input().split())) #์ •๋‹ต
visit = [] #์˜์žฌ์˜ ๋‹ต์•ˆ
cnt=0
dfs(0)
print(cnt)

 

 

๋Œ“๊ธ€