재귀함수를 이용한 부분집합 구하기
1. 프로그래밍 인사이트에서 발간한 알고리즘 트레이닝을 시작했습니다. 2. 첫장에 재귀를 사용해서 부분집합을 구하는 알고리즘이 나오는데 재귀 함수 따라가다가 멘붕이 와서 정리해둡니다. 으악! Q. 원소가 n개인 집합의 모든 부분집합을 생성해보자. ex) {1, 2, 3}의 부분집합은 공집합{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3} 입니다. 이 부분집합을 재귀 알고리즘을 이용해 구한 예제 코드가 있습니다. (C++) 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #include #include..
더보기
숫자 대각선 나열하기
1 2 4 7 11 3 5 8 12 16 6 9 13 17 20 10 14 18 21 23 15 19 22 24 25 이런식으로 뽑아야 하는 문제다.처음에는 이게 무슨 패턴이 있는지 알기 힘들었다.숫자도 더해보고, 위아래 값 비교도 해보고 하는데 일관성이 없어서 이거 파악하는 데만도 한참 걸린듯. 그러다 발견한 패턴!아래 그림처럼 숫자가 대각선으로 증가하는 걸 알 수 있었다. 좌표로 보면, 1 : (0,0) 2: (0.1)3: (1,0) 4: (0.2)5: (1,1)6: (2,0) 7: (0,3) 8: (1,2) 9: (2,1) 10: (3,0) 이렇게 되는데, 자세히 보면... x좌표는0010123012341234234344 이런식으로 바뀌고y좌표는0102103210432104321432434 대강 이..
더보기