Level 0. 그림 확대
단순하게 for문으로 문자열을 계속 더하거나, vector::insert() 함수로 계속 삽입할 수도 있다.
나는 메모리 재할당을 최소화하기 위해 미리 공간을 확보해놓고 인덱스를 계산해 해결했다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> solution(vector<string> picture, int k)
{
for (string& pic : picture)
{
pic.resize(pic.length() * k);
for (int i = pic.length(); 0 < i; i -= k)
fill(pic.begin() + i - k, pic.begin() + i, pic[i / k - 1]);
}
picture.resize(picture.size() * k);
for (int i = picture.size(); 0 < i; i -= k)
fill(picture.begin() + i - k, picture.begin() + i, picture[i / k - 1]);
return picture;
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 0. 정수를 나선형으로 배치하기 (0) | 2023.05.03 |
---|---|
Level 0. 배열 만들기 6 (0) | 2023.05.03 |
Level 0. 무작위로 K개의 수 뽑기 (0) | 2023.05.02 |
Level 0. 왼쪽 오른쪽 (0) | 2023.05.01 |
Level 0. 리스트 자르기 (0) | 2023.05.01 |