2022. 2. 7. 20:15γνμ΄μ¬ κΈ°μ΄
λ€μ μμ΄-next_purmutations
νμ΄μ¬μμ μμ΄μ λν λΌμ΄λΈλ¬λ¦¬λ μ 곡νμ§λ§ λ€μ μμ΄κ°μ λΆλ¬μ€λ κ²μ λν΄μλ μ 곡νμ§ μλλ€.
μμ΄μ μλ‘ λ€λ₯Έ nκ°μ μ§ν©μμ rκ°λ₯Ό μμμκ² λμ΄νλ κ²μ΄λ€.
λ³΄ν΅ μκ³ λ¦¬μ¦ λ¬Έμ μμλ
1) a,b,d,e λ€μμ λμ¬ μ΅μκ°μ 무μμ΄ λμ€λκ°?
2) 1,2,4,3,5 λ€μμ λμ¬ μ΅μκ°μ 무μμΈκ°?
λ‘ λ³Ό μ μλ€.
νμλ ν΄μ»€λν¬ λ¬Έμ μμ ν΄λΉ μκ³ λ¦¬μ¦μ νμμ±μ λκΌλ€.
https://www.hackerrank.com/challenges/bigger-is-greater/problem?isFullScreen=true
next_permutations μ½λ.
s = list(input())
def next_permutations(arr):
i,j = len(arr)-1, len(arr)-1
#μ¦κ°νλ ννλ₯Ό μ°ΎμλκΉμ§
while i>0 and arr[i-1]>=arr[i]:
i-=1
if i==0:
return False
while arr[i-1]>=arr[j]:
j-=1
arr[i-1], arr[j] = arr[j], arr[i-1]
k = len(arr)-1
#μκ°λ¦΄λκΉμ§
while i<k:
arr[i],arr[k] = arr[k],arr[i]
i+=1
k-=1
return arr
print(next_permutations(s))
μ΄ ν¨μλ arrμ κ°μ΄ intκ° μ€λ charνμ μ΄ μ€λ μκ΄νμ§ μκ³ μμ΄μ μ§ννλ€. μμ νμ΄μ¬μ λ²μ©μ±μ΄ λλ€.
if i==0 λΆλΆμ λ€μ μμ΄μ λ°ννλ ν¨ν΄μ μ°Ύμ μ μμ λ Falseλ₯Ό 리ν΄νλ€.
λΉμ°νλ©΄μ μ¬λ°λ μ¬μ€μ΄μλλ°
맨 λ§μ§λ§ iμ kλ₯Ό κ³μν΄μ swapν΄μ£Όλ μ΄μ λ μμ μ΄μ΄ κ°μνλ ννμΌλ λμΉμ μΌλ‘ swapνλ€λ©΄ sortνλ ννλ₯Ό λκ² λκΈ° λλ¬Έμ΄λ€.
'νμ΄μ¬ κΈ°μ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νμ΄μ¬μ μμνλ©΄μ-5 (0) | 2020.08.24 |
---|---|
νμ΄μ¬μ μμνλ©΄μ-4 (0) | 2020.08.22 |
νμ΄μ¬μ μμνλ©΄μ-3 (0) | 2020.08.20 |
νμ΄μ¬μ μμνλ©΄μ-2 (0) | 2020.08.20 |
νμ΄μ¬μ μμνλ©΄μ (0) | 2020.08.19 |