본문 바로가기

전체 글272

[백준 10972] 다음 수열 사실 STL을 사용하면 매우 쉽게 풀 수 있는 문제이지만, 직접 구현을 하거나 STL에 구현이 되어 있다는 것을 모르면, 귀찮아지는 문제이다.배열의 인덱스 가지고 재미있게 코딩할 수 있다는 점이 상당히 놀랍다.참고하면 좋은 글 : https://redcoder.tistory.com/7 출처: https://www.acmicpc.net/problem/10972 문제1부터 N까지의 수로 이루어진 순열이 있다. 이때, 사전순으로 다음에 오는 순열을 구하는 프로그램을 작성하시오.사전 순으로 가장 앞서는 순열은 오름차순으로 이루어진 순열이고, 가장 마지막에 오는 순열은 내림차순으로 이루어진 순열이다.N = 3인 경우에 사전순으로 순열을 나열하면 다음과 같다.1, 2, 31, 3, 22, 1, 32, 3, 13, .. 2019. 3. 16.
[C++] [Algorithm] C++에서 next_permutation 함수( prev_permutation 함수)를 통해서 순열 구하기 next_permutation => 직역하자면, 다음 수열이라는 의미입니다. STL에서 제공하는 함수이며 vector, 배열로 구현이 가능합니다. // 사전 순으로 정렬 1 3 4 2 의 다음 수열은 1 4 2 3 이 됩니다.이때 1 4 2 3 을 만들기 위해서 4가지 단계를 거치는데 1. 어디까지가 감소 수열인가 찾기.1 3 4 2 (감소 수열 4 2) 이떄 i = 2 2. i-1보다 작거나 같으며, 가장 뒤에 있는 수 j 를 찾기1 3 4 2 (2보다 작으며, 가장 앞에 있는 수를 찾습니다)이때 j = 3 (2를 가르킵니다)의 이전 인덱스 j = 2( 4를 가르킵니다) 3. 그 둘을 Swap 시킵니다.1 4 3 2 4. i -1 이후로 뒤집습니다.1 4 2 3 1234567891011121314151.. 2019. 3. 16.