- 이번에 짜 본것은 임의의 개수의 카드 수 n 그리고 그 카드의 숫자를 입력 받았을 때

 

- 그 카드들을 가지고 만들 수 있는 모든경우의 수 를 출력하는 코드 입니다.

 

- 재귀를 사용하였고

 

- 알기 쉽게 표현 하자면 예를 들어 10 장의 카드의 모든 경우의 수를 구해야 할 때

 

- 한장을 선택을 한다면 !  나머지 9장만 선택을 하면됩니다 

 

- 이러한 방향으로 뽑아야 하는 카드의 수를 하나씩 줄이는 방식으로 구현하였고

 

- 코드 구현상에서는 임의의 카드를 하나 선택했다고 한다면 그 임의의카드와 벡터의 마지막 index 위치의 수 와 swap

 

- 을 한 이후 사이즈를 하나줄인 함수로 다시 들어갑니다 (즉 하나의 카드는 선택해서 뺴놓는 느낌)

 

<코드>

 

 

'알고리즘 문제풀이 > 완탐' 카테고리의 다른 글

백준 17281 : 야구 [C++]  (0) 2020.10.13
백준 1748 : 수 이어 쓰기 1  (0) 2020.03.24
백준 14889  (0) 2020.02.24
백준 14888  (0) 2020.02.21
백준 7568  (0) 2020.02.21

- 대표적인 swap 예제 이다.

Call by value로 swap을 할경우 swap 함수에서 변수의 값을 전달 받기는 하지만

Num1,과 num2의 값만 넘겨 받았을 뿐 그것이 num1과 num2는 아니기 때문에

함수가 종료되면 main 함수에 직접 영향을 끼치지 못한다.

Call by reference의 경우 주소를 통해 전달 받은 값들을 변경하는 것이므로

종료된 이후에도 참조 했던 주소의 값들이 바뀌어 있으므로 main함수에 있는 num1과

Num2도 영향을 받아 swap이 된다.

그리고 call by value 이용하여 함수에 접근 할 경우 value 값을 저장할 새로운 공간을 할당

받아야 하므로

call by reference에 비하여 시간이 더욱 오래 걸린다.

<예시코드>

<결과창>

 

 

+ Recent posts