티스토리 뷰
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
- 문현공
- 인간본성불패의법칙
- 동탄에듀센터2
- 삼성전자
- 나는늘잘해야한다고생각한다
- 긴 자리 곱셈
- 여가포인트
- 독서 감상평
- 나의첫죽음학수업
- 영화감상평
- 원서잡아먹는영작문
- 내가틀릴수도있습니다
- 당신도느리게나이들수있습니다
- 자동차보험
- JUNGOL
- 역사의쓸모
- 호암의마지막꿈
- 세상을 읽는 새로운 언어 빅데이터
- 안전운전특약
- 최재천의공부
- 동탄에듀센터
- AdSendse
- 쿠프마케팅
- 정올
- 센터독서클럽
- 지루함의심리학
- 독서감상평
- 자이언트임팩트
- 정세현의통찰
- 긴 자리 덧셈 뺄셈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함