티스토리 뷰
728x90
반응형
백준 온라인 저지(BOJ) 15652번 N과 M (4)
https://www.acmicpc.net/problem/15652
* 사용언어 : C언어, C++
1. 문제
N개의 수에서 M개의 숫자를 뽑아 나열하는 모든 경우를 출력
(숫자 중복 허용, 비내림차순 수열만)
2. 풀이
아래 (3)번 풀이로 작성한 코드에서 약간만 수정하여 풀었습니다.
for문을 통해 재귀함수를 타는 부분(수열의 다음 자리 숫자를 지정하는 부분)에서
시작 숫자를 1부터가 아닌 직전 자리의 숫자(prev)부터 반복하도록 했습니다.
(int i = 0에서 int i = prev로 수정)
수열의 첫 번째 자리(idx == 0)에는 직전 숫자가 있을 수 없으니 idx != 0일 때 직전 숫자를 찾게 했습니다.
https://rightbellboy.tistory.com/309
3. 코드
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
/*
15652_N과 M (4)
1112KB 4ms
*/
#include <cstdio>
const int LM = 8;
int arr[LM], N, M;
void permutation(int idx) {
if (idx == M) {
for (int i = 0; i < M; ++i) printf("%d ", arr[i]);
printf("\n");
return;
}
int prev = 1;
if (idx != 0) prev = arr[idx - 1];
for (int i = prev; i <= N; ++i) {
arr[idx] = i;
permutation(idx + 1);
}
}
int main() {
#ifdef _WIN32
freopen("input.txt", "r", stdin);
#endif // _WIN32
scanf("%d %d", &N, &M);
permutation(0);
return 0;
}
728x90
반응형
'개발자 > 문제풀이 (C언어)' 카테고리의 다른 글
[백준/BOJ] 2580번 스도쿠 (C/C++) (0) | 2024.02.19 |
---|---|
[백준/BOJ] 9663번 N-Queen (C/C++) (0) | 2024.02.08 |
[백준/BOJ] 15651번 N과 M (3) (C/C++) (0) | 2024.01.22 |
[백준/BOJ] 15650번 N과 M (2) (C/C++) (0) | 2024.01.21 |
[백준/BOJ] 15649번 N과 M (1) (C/C++) (0) | 2024.01.19 |
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 여가포인트
- 독서감상평
- 호암의마지막꿈
- 안전운전특약
- 나의첫죽음학수업
- 긴 자리 곱셈
- 시대예보
- 최재천의공부
- 자료구조
- 문현공
- 영화감상평
- 동탄에듀센터
- 긴 자리 덧셈 뺄셈
- 정세현의통찰
- 자동차보험
- 세상을 읽는 새로운 언어 빅데이터
- JUNGOL
- AdSendse
- 관계가상처가되기전에
- 삼성전자
- 나는늘잘해야한다고생각한다
- 센터독서클럽
- 동탄에듀센터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 |
글 보관함