1759_암호만들기

이준혁·2025년 11월 27일

예제 입력 1
4 6
a t c i s w

예제 출력 1
acis
acit
aciw
acst
acsw
actw
aist
aisw
aitw
astw
cist
cisw
citw
istw

개념정리

push_back

  • push_back이란 vector에서 뒤에 자리에 숫자를 집어 넣음
  • 또는 str.push_back으로 해서 뒤에 문자도 집어넣을수 있음

vector <char> nums_line;

  • 이렇게 vector는 int 뿐만아니라 char로도 할수 있었음
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int output_line, input_line;

vector<char> nums_line;

void dfs(vector<char> nums_line, int a, string str, int jaum, int moum)
{
   
    str.push_back(nums_line[a]);
    if(nums_line[a] == 'a' || nums_line[a] == 'e' || nums_line[a] == 'i'|| nums_line[a] == 'o'|| nums_line[a] == 'u')
    {
        ++moum;
    }
    else ++jaum;

    if(str.size()==output_line)
    {
        if(moum>=1 && jaum>=2)
        {
            cout<<str<<'\n';
        }
    }

    for(int i = a+1;i < input_line;i++)
    {
        dfs(nums_line, i, str, jaum, moum);
    }

}

int main()
{
    ios_base::sync_with_stdio(0);

    cin>>output_line>>input_line;

    nums_line.resize(input_line);

    for(int i = 0 ; i < input_line;i++)
    {
        cin>>nums_line[i];
    }

    sort(nums_line.begin(),nums_line.end());
    
    for(int i = 0; i < input_line; i++)
        dfs(nums_line,i,"",0,0);

}




참고
https://0m1n.tistory.com/21

profile
#자기공부 #틀린것도많음 #자기개발 여러분 인생이 힘들다 하더라도 그것을 깨는 순간 큰 희열감으로 옵니다~

0개의 댓글