티스토리 뷰

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

 

10972번: 다음 순열

첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다.

www.acmicpc.net

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

 

10973번: 이전 순열

첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다.

www.acmicpc.net

 

c++은 next_permutation, prev_permutation 으로 다음 순열, 이전 순열을 출력하면 된다. 

 

js 로 풀면서 직접 구현해 봤는데 

dfs 로 순열을 만드는 방법을 역추적 해봤다.

 

mark[i] = true : 숫자 i 는 사용중 

1. 뒤에서 부터 현재 숫자 사용여부를 false 로 하고, 현재 숫자보다 큰 값 중 사용하지 않은 숫자로 대체한다. 

2. 1번을 반복하다 제일 첫번째 숫자에 도달하면, 앞에서부터 뒤로 똑같이 수행한다.

 

 

 

 

 

'PS' 카테고리의 다른 글

백준 1484. 다이어트  (0) 2023.03.31
백준 14621. 나만 안되는 연애  (0) 2023.03.29
백준 13975. 파일 합치기 3  (0) 2023.03.21
백준 15971. 두 로봇  (0) 2023.03.18
백준 21758. 꿀 따기  (0) 2023.03.18
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함