본문 바로가기
개발자/알고리즘

[BOJ] 15654번 N과 M(5) - 빠른 입출력

by D , 2019. 9. 19.
반응형

1. 빠름

 - main에

 1) cin.tie(NULL);

 2) ios_base::sync_with_stdio(false);

 3) endl; 대신 개행문자 '\n' 사용

   -> scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다

 

2. 다음

 - scanf, printf 사용 

 



#include < iostream >
#include < vector >
#include < algorithm >

using namespace std;

int a[10];
bool b[10];

vector q;

void go(int index,int n,int m){
    if(index == m){
        for(int i=0;i<m;i++){
            cout<<q[a[i]-1]<<" ";
        }
        cout<<"\n";
    }

    for(int i=1;i<=n;i++){
        if(b[i])
            continue;
        b[i] = true;
        a[index] = i;
        go(index+1,n,m);
        b[i] = false;
    }
}

int main()
{
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);

    int n,m;
    cin>>n>>m;

    for(int i=0;i<n;i++){
        int temp;
        cin>>temp;
        q.push_back(temp);
    }
    sort(q.begin(),q.end());

    go(0,n,m);


    return 0;
}

 

https://www.acmicpc.net/problem/15654

 

15654번: N과 M (5)

N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열

www.acmicpc.net

 

반응형

'개발자 > 알고리즘' 카테고리의 다른 글

[BOJ] 11724번 연결 요소의 개수  (0) 2019.09.21
[BOJ] 1260번 BFS와 DFS  (0) 2019.09.21
[BOJ] 14501번 퇴사  (0) 2019.09.18
[BOJ] 1182번 부분수열의 합  (0) 2019.09.17
[BOJ] 1759번 암호 만들기  (0) 2019.09.17