I noticed that there is a function to get permutations of a given sequence.

If I had known that, I could have responded better in Kakao Internship Interview.

The function named `next_permutation`

in `<algorithm>`

library gets the start and end iterator, changes the given array into a next permutation consisting of elements in the range, and returns `true`

.

If all permutations are reached, the input goes back to the original form and the function returns false.

The point is that `next_permutation`

function does not calculate the order of permutations, so it returns false after making $n$th permutation if there are $1$st to $n$th permutations in ascending order.

So if we want to get all of the permutations, the original form of the array should be sorted in ascending order at the beginning.

```
vector<char> ges = {'h', 'p', 's'};
do {
poss.push_back(ges);
} while(next_permutation(ges.begin(), ges.end()));
```

With the above codes, I could solve this problem easily.

https://www.acmicpc.net/problem/14456