1
2
3
01
02
03
12
13
23
012
013
023
123
0123
string[] combination(string s) | |
{ | |
char[] orderedArray = s.ToCharArray().Distinct().OrderBy(x => x).ToArray(); | |
string prefix = ""; | |
List<string> result = new List<string>(); | |
for (int i = 0; i < orderedArray.Length; i++) | |
{ | |
prefix = string.Empty; | |
for (int x = i; x < orderedArray.Length; x++) | |
{ | |
if (x == i) | |
{ | |
prefix = orderedArray[x].ToString(); | |
} | |
else | |
prefix += orderedArray[x].ToString(); | |
//중복되는것은 list에 add하지 않는다. | |
//ex) 0 01 02 03 | |
// 01 012 013 //01 중복 | |
// 012 0123 //012 중복 | |
if(!result.Contains(prefix)) | |
result.Add(prefix); | |
for (int j = x + 1; j < orderedArray.Length; j++) | |
{ | |
result.Add(prefix + orderedArray[j].ToString()); | |
} | |
} | |
} | |
return result.ToArray(); | |
} |
댓글 없음:
댓글 쓰기