2023. 4. 12. 17:14, 알고리즘/BOJ
next+permutation 을 활용해서 순열을 출력할때, 주로 do while 형태로 사용되는건 알겠는데, 맨 마지막까지 진행한 후에,
모든 과정을 거치고 for문으로 컨테이너의 각각의 항들을 찍어보면 다시 1,2,3 형태로 바뀌어 있어서 궁금해서
따로 3 2 1 일때를 찍어보니까, 1 2 3 형태로 바뀌어 있었다.
이런식으로 코드를 작성하고 돌려보니 알 수 있는 것은, next_permutation의 경우는 사전식 배열의 끝에 도달했을때 다시 처음으로 배열해버리고, 그럴 경우 false를 반환한다고 생각하면 될듯 하다.
이렇게 되면 while문 맨 마지막에서 false를 반환하고, 어떤 식에서 내가 원하던 결과를 도출한건지 알수 없었던 상황이 이해가 된다.
next_permutation은 하나 다음으로 변환시켜버리고 그리고 다음이 더 가능하냐 안하냐에 따라서 true or false를 반환한다고 기억하도록 하자. 사전식 배열의 맨 마지막에 도달하면 다음은 사전식 배열상 없으니까, 마지막 형태니까 false를 반환한다고 기억하도록 하자.
'알고리즘 > BOJ' 카테고리의 다른 글
c++ binary_search()가 이미 stl로 있다는걸 기억하고, 이분탐색 문제의 경우 이 stl을 활용하도록 하자. (0) | 2023.04.13 |
---|---|
c++에서 vector을 활용할때, resize(n); 함수를 사용하는 경우에 대하여. (0) | 2023.04.13 |
c++ sort함수 내림차순 정렬 방법. (0) | 2023.04.12 |
boj 1181번 문제, 단어 정렬 문제/ 이 문제의 경우 굉장히 기본적이면서 익숙해질 필요가 있는 문제라고 생각된다. (0) | 2023.04.10 |
c++에서 vector를 sort 함수를 사용하여서 정렬할때와, array를 sort 함수를 사용하여서 정렬할때의 표현 법의 차이. (0) | 2023.04.10 |
Comments, Trackbacks