반응형
문자열 반복해서 새로운 문자열을 만드는 문제
문제만보면 되게 쉬워보이는데 이전에 제출한게 틀려있길래 간만에 겸사겸사 풀어봄
#include <bits/stdc++.h>
using namespace std;
//횟수만큼 반복해서 새로운 문자열 만들어주는 함수
int makeStr(int cnt, string str){
//한번씩 출력할 문자열
string tmpStr;
for(int i=0; i<str.length(); i++){
for(int j=0; j<cnt; j++){
tmpStr += str[i];
}
}
cout << tmpStr;
return 0;
}
int main() {
//전체 반복 횟수
int totalCnt = 0;
cin >> totalCnt;
//makeStr 함수 호출 시 사용되는 변수 (횟수와 문자열)
int tmpCnt = 0;
string tmpStr;
for(int i=0; i<totalCnt; i++){
cin >> tmpCnt;
cin >> tmpStr;
if(i>0) cout << "\n";
//첫번째 입력이면 한번 출력 후 new line 필요없으므로
//출력이 1이상일때부터 출력하도록 함
makeStr(tmpCnt, tmpStr);
}
return 0;
}
처음에 풀때는 메인함수에서 입력을 다 처리해주다가
그냥 문자열을 새로 만들어주는 함수 makeStr을 작성해서 호출하도록 했다
문자열 특성 상 배열처럼 인덱스 접근이 가능하므로
새로 만들 임시 문자열 tmpStr에 할당 연산자(+=)로 반복해야 하는 횟수만큼
i번째 문자열을 j(=cnt)번만큼 더해주었다
출처: https://www.acmicpc.net/problem/2675
반응형
'문제풀기' 카테고리의 다른 글
[백준/BOJ] 문자열 2908번 문제, 상수 C++ 풀이 (0) | 2022.10.20 |
---|---|
[백준/BOJ] 문자열 1152번 문제, 단어의 개수 C++ 풀이 (0) | 2022.10.19 |
[백준/BOJ] 문자열 1157번 문제, 단어 공부 C++ 풀이 (0) | 2022.10.06 |
[ASCII] 아스키코드란, 참고하려고 기록해보는 아스키코드 표 (0) | 2021.12.27 |
[백준/BOJ] 출력 10171/10172번 문제, 개/고양이 C++ 풀이 (0) | 2021.12.13 |
[MySQL] 프로그래머스 SQL 고득점 kit level1, SELECT 문 (0) | 2021.11.03 |