-
절차형 재귀함수로 permutation 구현하기PROGRAMMING/C++ 2024. 3. 18. 20:57
모던 c++로 배우는 함수형 프로그래밍을 보다가 절차형 재귀함수로 nPr을 구현하는 걸 봤는데 코드가 너무 아름다워서 기록해놓는다.
절차형 재귀 : 값 반환 없이 각 재귀에서 특정한 작업을 처리
https://product.kyobobook.co.kr/detail/S000001804653
모던 C++로 배우는 함수형 프로그래밍 | 위스누 앤거로 - 교보문고
모던 C++로 배우는 함수형 프로그래밍 | 모던 C++의 새로운 기능과 함수형 프로그래밍을 다룬다. 기능이나 개념별로 예제 코드를 작성하고 실행하며 공부할 수 있도록 구성했다. 기본 문법은 자세
product.kyobobook.co.kr
책이 깊지 않다는 평이 있었는데, 내 실력에 이정도면 충분,,(조금 버겁)해서 좋다.
번역도 좋고 설명도 너무 친절해서 개인적으로 강추!!!!
#include <iostream> using namespace std; void doPermute(const string& chosen, const string& remaining) { if (remaining == "") cout << chosen << endl; else { for (uint32_t u = 0; u < remaining.length(); ++u) { doPermute(chosen + remaining[u], remaining.substr(0, u) + remaining.substr(u + 1)); } } } void permute(const string& s) { doPermute("", s); } auto main()->int { string str; cin >> str; cout << endl << "The possibility permutation of " << endl; cout << str << endl; permute(str); return 0; }
'PROGRAMMING > C++' 카테고리의 다른 글
(백준 16562번 친구비 C++) 라이님 블로그 대회 알고리즘 따라잡기 12) Union Find 3 (0) 2024.05.09 Modern C++ 알아보기 (4) 2024.03.17 윤성우 열혈 C++ 프로그래밍 16장) C++의 형 변환 연산자 (2) 2024.01.15 윤성우 열혈 C++ 프로그래밍 15장) 예외처리(try, catch, throw, 스택풀기, 예외클래스, 예외 객체) (0) 2024.01.15 윤성우 열혈 C++ 프로그래밍 13,14장) 템플릿(template)(함수 템플릿, 템플릿 함수, 클래스 템플릿, 템플릿 클래스, 특수화, 부분 특수화) (0) 2024.01.12