[C++] 프로그래머스 그림 확대

문제설명

직사각형 형태의 그림 파일이 있고,
이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다.
이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때,
이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을
return 하는 solution 함수를 작성해 주세요.


제한사항

• 1 ≤ picture의 길이 ≤ 20
• 1 ≤ picture의 원소의 길이 ≤ 20
• 모든 picture의 원소의 길이는 같습니다.
• picture의 원소는 '.'과 'x'로 이루어져 있습니다.
• 1 ≤ k ≤ 10


입출력 예

picture k result
[“.xx…xx.”, “x..x.x..x”, “x…x…x”, “.x…..x.”, “..x…x..”, “…x.x…”, “….x….”] 2 [”..xxxx……xxxx..”, “..xxxx……xxxx..”, “xx….xx..xx….xx”, “xx….xx..xx….xx”, “xx……xx……xx”, “xx……xx……xx”, “..xx……….xx..”, “..xx……….xx..”, “….xx……xx….”, “….xx……xx….”, “……xx..xx……”, “……xx..xx……”, “……..xx……..”, “……..xx……..”]
[“x.x”, “.x.”, “x.x”] 3 [“xxx…xxx”, “xxx…xxx”, “xxx…xxx”, “…xxx…”, “…xxx…”, “…xxx…”, “xxx…xxx”, “xxx…xxx”, “xxx…xxx”]


풀이

그림 파일을 나타낸 picture 배열을 정수 k배 늘린 그림파일로 변환하는 구현 문제입니다.

#include <string>
#include <vector>

using namespace std;

vector<string> solution(vector<string> picture, int k) {
    vector<string> answer;
    
    for(int i = 0; i < picture.size(); i++)
    {
        string temp_answer;
        
        for(int j = 0; j < picture[i].length(); j++)
        {
            for(int i_k = 0; i_k < k; i_k++)
            {
                temp_answer.push_back(picture[i][j]);
            }
        }
        
        for(int i_k2 = 0; i_k2 < k; i_k2++)
        {
            answer.push_back(temp_answer);
        }
    }
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment