문자 반복 출력하기
2024. 7. 19. 18:00ㆍ코딩테스트 입문
https://school.programmers.co.kr/learn/courses/30/lessons/120825
문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 ≤ my_string 길이 ≤ 5
- 2 ≤ n ≤ 10
- "my_string"은 영어 대소문자로 이루어져 있습니다.
입출력 예
my_string | n | result |
"hello" | 3 | "hhheeellllllooo" |
입출력 예 설명
입출력 예 #1
- "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.
문자열과 숫자 n이 주어지고, 해당 문자열의 요소들을 각각 n개씩 늘린 새로운 문자열을 반환하는 문제입니다.
파이썬은 간단하게 *n 을 사용하면 요소를 n배 늘릴 수 있는데요, C 같이 지원하지 않는 언어라면 직접 반복문을 구현하면 풀 수 있습니다
이번에는 파이썬과 C로 문제를 풀어보겠습니다.
1. 파이썬
리스트 컨프리헨션과 조인을 사용합니다.
def solution(my_string, n):
# ''을 중간자로 결합합니다.
# my_string의 각 요소를 n배 해줍니다.
answer = ''.join([char * n for char in my_string])
return answer
2. C
이중 반복문을 사용합니다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
char* solution(const char* my_string, int n) {
// my_string의 길이를 구합니다.
int len = strlen(my_string);
// 동적 할당합니다. len * n + 1(\0)
char* answer = (char*)malloc((len * n + 1) * sizeof(char));
// 반복문을 실행합니다.
for (int i = 0; i < len; i++) {
// answer에 n배한 값들을 집어넣습니다.
for (int j = 0; j < n; j++) {
answer[n * i + j] = my_string[i];
}
}
// 마지막 문자열에 \0을 추가합니다.
answer[len * n] = '\0';
return answer;
}
간단하게 풀 수 있는 문제입니다.
'코딩테스트 입문' 카테고리의 다른 글
각도기 (0) | 2024.07.21 |
---|---|
특정 문자 제거하기 (1) | 2024.07.20 |
짝수 홀수 개수 (1) | 2024.07.18 |
직각삼각형 출력하기 (0) | 2024.07.17 |
문자열 뒤집기 (0) | 2024.07.16 |