algorithm

๋ฐฑ์ค€ 6603. ๋กœ๋˜(๋ฐฑํŠธ๋ž˜ํ‚น)

์ˆ˜ํ˜€์ด0812 2023. 9. 29. 09:49
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ๐Ÿ˜ต‍๐Ÿ’ซ

๋…์ผ ๋กœ๋˜๋Š” {1, 2,...,49}์—์„œ ์ˆ˜ 6๊ฐœ๋ฅผ ๊ณ ๋ฅธ๋‹ค.

๋กœ๋˜ ๋ฒˆํ˜ธ๋ฅผ ์„ ํƒํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์ „๋žต์€ 49๊ฐ€์ง€ ์ˆ˜ ์ค‘ k(k>6)๊ฐœ์˜ ์ˆ˜๋ฅผ ๊ณจ๋ผ ์ง‘ํ•ฉ S๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ๊ทธ ์ˆ˜๋งŒ ๊ฐ€์ง€๊ณ  ๋ฒˆํ˜ธ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, k=8, S={1, 2, 3, 5, 8, 13, 21, 34}์ธ ๊ฒฝ์šฐ ์ด ์ง‘ํ•ฉ S์—์„œ ์ˆ˜๋ฅผ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ์ด 28๊ฐ€์ง€์ด๋‹ค.

{[1, 2, 3, 5, 8, 13], [1, 2, 3, 5, 8, 21], [1,2,3,5,8,34], ..., [3,5,8,13,21,34])

์ง‘ํ•ฉ S์™€ k๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ˆ˜๋ฅผ ๊ณ ๋ฅด๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจใ…‡์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์ด์‹ฟ. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค, ์ฒซ ๋ฒˆ์งธ ์ˆ˜๋Š” k(6 < k < 13)์ด๊ณ , ๋‹ค์Œ k๊ฐœ ์ˆ˜๋Š” ์ง‘ํ•ฉ S์— ํฌํ•จ๋˜๋Š” ์ˆ˜์ด๋‹ค. S์˜ ์›์†Œ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค.

์ž…๋ ฅ์˜ ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” 0์ด ํ•˜๋‚˜ ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ์ˆ˜๋ฅผ ๊ณ ๋ฅด๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ด๋•Œ, ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์‚ฌ์ด์—๋Š” ๋นˆ ์ค„์„ ํ•˜๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋‚ด ํ’€๐Ÿฆท

# 6603. ๋กœ๋˜
def backtracking(depth, beginwith):
    if depth == 6:
        print(*result)
        return

    for i in range(beginwith, k):
        if not visited[i]:
            result[depth] = nums[i]
            backtracking(depth+1, i+1)
            visited[i] = False


while True:
    lotto = list(map(int, input().split()))
    k = lotto[0]
    nums = lotto[1:]
    result = [0] * 6
    visited = [False] * k
    backtracking(0, 0) // ๊นŠ์ด, ์–ด๋””์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ• ๊ฑด์ง€

    if k == 0:
        quit()
    print()

 

N๊ณผ M์œผ๋กœ ๋‹ค์ง„ ๋ฐฑํŠธ๋ž˜ํ‚น ๊ฐœ๋…์„ ๋‹ค๋ฅธ ๋ฌธ์ œ์—๋„ ์ ์šฉ์‹œํ‚ค๊ณ  ์‹ถ์–ด์„œ ๋กœ๋˜๋ผ๋Š” ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค!!!!

์–ด๋ ค์› ๋˜ ์ ....

1. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ํ•œ์ค„ ๋›ฐ์šฐ๋Š”๊ฑธ ์–ด๋–ป๊ฒŒ ํ•˜์ง€....

2. ๋งˆ์ง€๋ง‰ 0์ด ๋‚˜์™”์„ ๋•Œ ์ข…๋ฃŒ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜์ง€...

3. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜๊ฐ€ ์•ˆ์ฃผ์–ด์กŒ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ํ•˜์ง€...

 

 

๋ฐฑํŠธ๋ž˜ํ‚น ๊ฐœ๋…์ ์ธ๋ถ€๋ถ„ ๋ณด๋‹ค๋Š” ๋‹ค๋ฅธ๊ฒƒ๋“ค์— ๋” ์‹œ๊ฐ„์„ ๋งŽ์ด ์žก์•„๋จน์—ˆ๋‹ค....

์ˆœ,์กฐ์— ๋Œ€ํ•œ ๊ฐœ๋…์€ ๐Ÿ‘‡๐Ÿ‘‡๐Ÿ‘‡

https://jeniffer0812techstory.tistory.com/94

 

์ˆœ์—ด๊ณผ ์กฐํ•ฉ๐Ÿ’ช

์œ ํŠœ๋ฒ„ ๋”ฉ์ฝ”๋”ฉ์”จ ๋ณด๊ณ  ์ •๋ฆฌํ•ด๋ณด๋Š” ์ˆœ์—ด๊ณผ ์กฐํ•ฉ... ์žฌ๊ท€, ๋ฐฑํŠธ๋ž˜ํ‚น, dfs... ๋“ฑ๋“ฑ ์ •๋ง ๋งŽ์ด ์—ฐ๊ด€๋˜์–ด์žˆ์–ด์„œ ์ •๋ฆฌํ•˜๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™์•„ ์˜ฌ๋ ค๋ด…๋‹ˆ๋‹ค... ##### permutation(์ˆœ์—ด) ''' ์ˆœ์—ด : permutation(ํฌํ•จ๋˜์–ด ์žˆ

jeniffer0812techstory.tistory.com

 

 

์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๊ฐœ๋…๋“ค โœ๏ธ

  • exit() : ํ”„๋กœ๊ทธ๋žจ ๊ฐ•์ œ ์ข…๋ฃŒ
for i in range(100):
    if i == 5:
        quit()
    print(i)
    
/* 
0
1
2
3
4
*/
728x90
๋ฐ˜์‘ํ˜•