728x90
0. [c++] 백준 - 15652 |
https://www.acmicpc.net/problem/15652
1. 풀이 |
https://kyunstudio.tistory.com/230의 문제와 매우 동일한 문제였다.
조건문을 조금 수정해서 문제를 풀 수 있었다.
2. 소스코드 |
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include<iostream> using namespace std; int arr[9]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int N, M; int count; cin >> N >> M; //우선 배열을 초기화 for (int i = 1;i <= M;i++) { arr[i] = 1; } bool flag = false; while (1) { //배열의 모든 수가 N이 되면 반복문을 탈출 flag = true; for (int i = 1;i <= M;i++) { if (!flag) break; if (arr[i] != N) flag = false; } //데이터 출력 for (int i = 1;i <= M;i++) cout << arr[i] << " "; cout << "\n"; if (flag) break; //수를 증가시켜준다. arr[M]++; //올림이 발생하는 것을 처리 if (arr[M] > N) { count = 1; //이때, 오름차순으로 배열이 이루어져야하기에 특수하게 처리해주었다. for (int i = M-1;i >= 1;i--) { if (arr[i] == N) { count++; } else break; } arr[M - count]++; for (int i = 0;i < count;i++) { arr[M - i] = arr[M - count]; } } } cout << endl; } | cs |
3. 참고 |
질문이나 지적 있으시면 댓글로 남겨주세요~
도움 되셨으면 하트 꾹!
'<백준> > |c++| normal' 카테고리의 다른 글
[c++] 백준 2580 - 스도쿠(재귀호출, 백트래킹) (3) | 2020.02.10 |
---|---|
[c++] 백준 9663 - N-Queen(백트래킹, 재귀함수) (0) | 2020.02.09 |
[c++] 백준 15649 - N과 M (1) (백트래킹, dfs) (0) | 2019.09.19 |
[c++] 백준 10830 - 행렬 제곱(분할 정복인데 비트마스크 활용) (0) | 2019.08.30 |
[c++] 백준 1629 - 곱셈(분할 정복인데 비트마스크 활용?) (0) | 2019.08.29 |