c#으로 str이라는 문자열을 배열로 리턴받으려고 하는데요. 빈공백으로 A, B, C 문자를
str = "A B C"
A B C AB AC BA BC CA CB ABC ACB BAC BCA CAB CBA
조합해서 배열로 결과를 받으려고 합니다. C#으로 구현하려고 하는데요.
이런 알고리즘이 있을것 같은데요.
알파벳이 n개 있다고 치죠.(A, B, C, ...)
ABCDEF... 해서 길이가 k인 경우가 최대 길이라고 치면요
알파벳 n개를 이용해 길이가 k인 모든 경우의 수(조합)를 다 적어놓고, 이걸 사전식으로 정렬해 둡니다.
그럼 위에 배열에서 가장 아랫단계의 배열이 얻어지죠.
그 윗단계는, 방금 얻은 아랫단계의 배열에서 가장 앞에 있는 글자를 지우면 k-1길이의 배열 n개가 만들어 집니다. 이걸 다시 사전식으로 정렬하고 중복되는걸 지우면 됩니다.
이 방법을 재귀적으로 하면 됩니다.
그리고 원하는 순서대로 재배열하면 되겠죠.
피할 수 있을때 즐겨라! http://melotopia.net/b
검색어: c# permutation
http://www.google.com/search?num=20&hl=en&newwindow=1&safe=off&client=iceweasel-a&rls=org.mozilla%3Aen-US%3Aunofficial&q=c%23+permutation&btnG=Search&aq=f&aqi=&aql=&oq=
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
알파벳이 n개 있다고 치죠.(A, B, C,
알파벳이 n개 있다고 치죠.(A, B, C, ...)
ABCDEF... 해서 길이가 k인 경우가 최대 길이라고 치면요
알파벳 n개를 이용해 길이가 k인 모든 경우의 수(조합)를 다 적어놓고, 이걸 사전식으로 정렬해 둡니다.
그럼 위에 배열에서 가장 아랫단계의 배열이 얻어지죠.
그 윗단계는, 방금 얻은 아랫단계의 배열에서 가장 앞에 있는 글자를 지우면 k-1길이의 배열 n개가 만들어 집니다. 이걸 다시 사전식으로 정렬하고 중복되는걸 지우면 됩니다.
이 방법을 재귀적으로 하면 됩니다.
그리고 원하는 순서대로 재배열하면 되겠죠.
피할 수 있을때 즐겨라! http://melotopia.net/b
검색어: c#
검색어: c# permutation
http://www.google.com/search?num=20&hl=en&newwindow=1&safe=off&client=iceweasel-a&rls=org.mozilla%3Aen-US%3Aunofficial&q=c%23+permutation&btnG=Search&aq=f&aqi=&aql=&oq=
댓글 달기