Skip to content
This repository was archived by the owner on Dec 1, 2022. It is now read-only.

Latest commit

ย 

History

History
49 lines (45 loc) ยท 1.42 KB

File metadata and controls

49 lines (45 loc) ยท 1.42 KB

๋ฆฌ์ŠคํŠธ์˜ ์ˆœ์—ด์„ ์‚ฌ์ „์ˆœ์œผ๋กœ!

์ˆซ์ž๋ฅผ ๋‹ด์€ 1์ฐจ์› ๋ฆฌ์ŠคํŠธ mylist๊ฐ€ ์žˆ์–ด์š”. ์›์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ชจ๋“  ์ˆœ์—ด์„ ์‚ฌ์ „์ˆœ์œผ๋กœ ๋ฆฌํ„ดํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ์„ธ์š”!

input example 1:
[2, 1]

output example 1:
[[1, 2], [2, 1]]


input example 2:
[1, 2, 3]

output example 2:
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

์•„๋งˆ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด for๋ฌธ์„ ์ด์šฉํ•ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๊ฐˆ ๊ฒƒ์ด๋ผ ์˜ˆ์ƒ๋ผ์š”!

def solution(mylist):
    result = [mylist[:]]
    c = [0] * len(mylist)
    i = 0
    while i < len(mylist):
        if c[i] < i:
            if i % 2 == 0:
                mylist[0], mylist[i] = mylist[i], mylist[0]
            else:
                mylist[c[i]], mylist[i] = mylist[i], mylist[c[i]]
            result.append(mylist[:])
            c[i] += 1
            i = 0
        else:
            c[i] = 0
            i += 1
    return result


๋ณด๋‹ค ํŒŒ์ด์ฌ๋‹ต๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค๋ฉด?

ํŒŒ์ด์ฌ์˜ itertools์—๋Š” permutations๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ์–ด์š”!

import itertools
def solution(mylist):
    mylist.sort()
    return list(map(list, itertools.permutations(mylist)))

์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„์ด ๋˜๋Š”๊ตฐ์š”!
์ •๋ง ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ ์ด์ƒ์˜ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๋“ค์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™์•„์š”.