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(); | |
| } |
댓글 없음:
댓글 쓰기