N

(SWEA c++)4676. 늘어지는 소리 만들기 본문

SW Expert Academy

(SWEA c++)4676. 늘어지는 소리 만들기

naeunchan 2020. 11. 12. 11:46
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWRKWITqfvIDFAV8&categoryId=AWRKWITqfvIDFAV8&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

문자열에서 원하는 위치에 "-"을 삽입해야 한다.

 

우선 문자열로 받아오고, n개 만큼 "-"를 넣기 위해 for문을 사용.

삽입할 인덱스를 저장하는 벡터(v)를 선언하여 인덱스를 저장한다.

v를 오름차순으로 정렬하고 for문으로 문자열의 위치에 "-"을 넣으면 된다.

 

만약 v[i] == len이라면 맨 뒤에 "-"를 넣어주면 되고,

아니라면 해당 인덱스 + (현재까지 "-"를 넣은 개수)의 위치에 "-"를 넣어주면 된다.

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

using namespace std;

int main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    cin >> t;
    
    for(int tc = 1; tc <= t; tc++)
    {
        string s;
        int n, len, cnt = 0;
        vector<int> v;
        cin >> s;
        cin >> n;
        
        len = s.size();
        for(int i = 0; i < n; i++)
        {
            int tmp;
            cin >> tmp;
            v.push_back(tmp);
        }
        sort(v.begin(), v.end());
        
        for(int i = 0; i < n; i++)
        {
            if(v[i] == len)
                s += "-";
            else
                s.insert(v[i] + cnt++, "-");
        }
        cout << "#" << tc << " " << s << endl;
    }
    return 0;
}
728x90
반응형