반응형
<문제 소개>
<소스 코드>
#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 expandStr;
for(int j = 0; j < picture[i].size(); j++)
{
for(int n = 0; n < k; n++)
{
expandStr += picture[i][j];
}
}
for(int n = 0; n < k; n++)
{
answer.push_back(expandStr);
}
}
return answer;
}
<풀이과정>
1. picture의 크기만큼 반복하며 매 반복시 추가될 확장한 문자열 expandStr을 선언한다.
2. 이후 각 문자열의 문자들을 반복하며, 내부에서 k번만큼 반복해서 해당 문자열을 expandStr에 넣어 k배 만큼 늘린 문자열을 만들어준다.
3. 문자열을 모두 만든 이후, answer에 해당 문자열을 넣어준다.
4. 위 반복이 끝난 뒤 answer을 리턴해준다.
<코멘트>
for문 3번인게 조금 지저분하지만 어렵진 않게 풀었다.
다른 분들 풀이를 봤는데, 내부의 3번째 반복문을 없애고 k배만큼 나머지 반복문을 늘려서 문자열을 만들 때 i,j대신 i/k, j/k을 이용해 한번에 넣는 방식으로 신박하게 푼 풀이가 있었다.
<제출결과>