• Home
  • About
    • 코드좀비 photo

      코드좀비

      An amazing website.

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

[BOJ] 백준 15650 N과M (2) 간단한설명과 코드 C++

15 Mar 2020

Reading time ~1 minute

문제 정보

백준 ( BOJ ) 15650 N과 M (2)

문제 풀이 : 수열

문제 출처 : https://www.acmicpc.net/problem/15650

시작 Thinking

WIN_20200315_16_29_20_Pro (2)

문제 풀이

이 문제는 n과 m(1)

과 비슷해 보입니다. 구현방법도 비슷하니 둘이 한번 비교해 보면서 보시는걸 추천해요.

수도코드는 다음과 같습니다.

fun(k, s)
 if ( k == end)
  cout all
 else
  for ( i :  s~max)
   add i to list
   fun(k+1,i+1)

변수가 하나 더 들어가서, 시작점을 고정시켜 주면 됩니다.

# 코드

 #include <iostream>
#include <vector>
#include <queue>

using namespace std;

int n, m;
int base;
vector<int> v(8, 0);

void fun(int roopedTime, int startPoint) {
	if (roopedTime == m) {
		for (int i = 0; i < m; i++) {
			printf("%d ", v[i]+1);
		}
		printf("\n");
	}
	else {
		for (int i = startPoint; i < n; i++) {
				v[roopedTime] = i;
				fun(roopedTime + 1,i+1);
		}
	}
}

int main() {
	cin >> n >> m;

	fun(0,0);


	return 0;
}


백준C++수열 Share Tweet +1