1. 문제 상세
https://www.acmicpc.net/problem/2675
2. 문제 접근
테스트의 횟수를 입력받고 그 횟수만큼 정수와 문자열을 입력받는다.
입력받은 정수만큼 문자열의 문자들을 반복하여 출력하는 것이 문제이다.
먼저 테스트 횟수를 입력받아 반복문으로 그 수만큼 반복하도록 한다. 카운터변수는 i.
반복문 안에서는 정수와 문자열을 입력받는다.
그리고 다시 반복문으로 문자열의 크기만큼 반복하도록 한다. 카운터 변수 j.
이 반복문 안에서는 또 다시 반복문으로 입력받은 정수만큼 반복하도록 한다. 카운터 변수 k
반복문 안에서 cout 으로 문자열 s의 j 번 인덱스의 값을 출력한다.
첫 번째 반복문은 테스트의 횟수 루프,
두 번째 반복문은 문자열의 크기만큼 반복, 즉 각 문자에 접근하기 위한 루프.
세 번째 반복문은 각 문자를 입력받은 횟수만큼 출력하는 루프이다.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int t, r;
string s;
cin >> t;
for(int i = 0; i < t; i++) {
cin >> r >> s;
for(int j = 0; j < s.size(); j++) {
for(int k = 0; k < r; k++) cout << s[j];
}
cout << "\n";
}
}
정수형 변수 t, r 을 선언, 문자열 객체 s 를 생성.
cin 으로 테스트 횟수를 입력받아 t 에 저장.
for문으로 i 가 0부터 t 보다 작을 때 1씩 더하며 반복하도록 한다.반복문 안에서는 cin 으로 정수와 문자열을 입력받아 각각 r, s 에 저장한다.안에서 다시 for문으로 j 가 0부터 s 의 길이보다 작을 때 1씩 더하며 반복하도록 한다.이 반복문 안에서 다시 for문으로 k 가 0부터 r 보다 작을 때 1씩 더하며 반복하도록 한다.이번 반복문 안에서는 cout 으로 s 의 j 번 인덱스의 문자를 출력한다.반복이 끝나면 개행문자를 출력하여 한 테스트 케이스가 끝나면 줄바꿈하도록 한다.
4. 성능 확인
5. 마무리
이번에는 3중 for문을 사용해보았다.
'백준 - 단계별로 풀어보기 > 문자열' 카테고리의 다른 글
[백준] 2908번 : 상수 | C++ (0) | 2023.09.25 |
---|---|
[백준] 1152번 : 단어의 개수 | C++ (0) | 2023.09.25 |
[백준] 10809번 : 알파벳 찾기 | C++ (0) | 2023.09.25 |
[백준] 11720번 : 숫자의 합 | C++ (0) | 2023.09.25 |
[백준] 11654번 : 아스키 코드 | C++ (0) | 2023.09.22 |