Notice
Recent Posts
Recent Comments
Link
celina의 이것저것
[백준 c 2675] 문자열 반복 본문
반응형
문제
접근
문자열을 반복해서 출력할때 이중반복문을 이용해서 해결할 수 있다
코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
int n; //테스트의 개수
int r; //문자열 반복 횟수
scanf("%d", &n);
char s[20];
for (int i = 0; i < n; i++) {
scanf("%d %s", &r, s); //3 ABC 입력받음
for (int j = 0; j < strlen(s); j++) { //문자열의 길이만큼 반복
for (int k = 0; k < r; k++) {
printf("%c", s[j]);
}
}
printf("\n");
}
return 0;
}
리뷰
1. 첫째 줄에 테스트 케이스의 개수만큼 가장 큰 반복문을 돌려준다.
2. scanf로 문자열의 반복횟수와 문자열을 입력받는다
3. 두번째 반복문으로 문자열의 길이만큼 반복을 해준다.
strlen으로 문자열 s의 길이를 구해준다
예를들어 예시 "5 /HTP" 은 출력 결과가 "/////HHHHHTTTTTPPPPP"이다.
내가 /HTP를 문자열배열에 입력하고 문자열의 길이를 구하면 4이다.
출력 결과를 보면 /////1개, HHHHH 1개, TTTTT 1개, PPPPP 1개, 총 4번 반복이되니까 문자열의 길이만큼 반복을 하는 것이다
4. r번 반복하는 반복문을 돌려서 같은 문자를 r번씩 출력하면 된다
5. 마지막으로 줄을 바꾸는 printf("\n")를 가장 바깥으로 뺀다.
왜냐하면 j반복문에 넣으면 "AAABBBCCC" 이렇게 출력 되는것이 아니라
AAA
BBB
CCC
이렇게 문자가 바뀔때마다 줄바꿈이 되기 때문이다
학습
문자열의 길이만큼 반복해야한다는 생각을 못했던 것 같다
출처
2675번: 문자열 반복
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다
www.acmicpc.net
'자료구조&알고리즘 > 백준' 카테고리의 다른 글
[백준 c 1152] 단어의 개수 (0) | 2022.11.02 |
---|---|
[백준 c 2908] 상수 (0) | 2022.10.28 |
[백준 c 11720] 숫자의 합 (0) | 2022.10.27 |
[백준 c 11654] 아스키코드 (0) | 2022.10.27 |
[백준 c 1427] 소트인사이드 (실버 5) / 문자열 / 버블정렬 (0) | 2022.10.27 |
Comments