문제설명
문자열을 주어진 정수 만큼 반복하여 출력하라
제한사항
입출력 예
말로하는 순서도
solution 함수 선언 및 매개변수 문자열이 담길 변수 my_string char 포인터형 주어진 정수가 담길 변수 int형 n 반환형 int
len 문자열의 길이를 담을 int형 변수 선언 strlen을 활용하여 my_string의 길이를 변수에 담음
answer이라는 계산값 및 최종 반환값을 저장할 char 포인터형 변수 선언
x answer의 위치값으로 사용될 int형 변수
for문 len보다 작을때 반복 변수증가
for문 주어진 정수보다 작을때 변수 증가
answer에 x증가된 위치의 my_string의 y위치의 값을 넣어라
answer에 x위치의 NULL을 넣어라
최종반환
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string, int n) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int len =strlen(my_string);
char* answer = (char*)malloc(len * n);
int x=0;
for(int y=0;y<len;y++)
{
for(int i=0; i<n;i++)
{
answer[x++]=my_string[y];
}
}
answer[x]=NULL;
return answer;
}
풀이
첫 for문은 넣을 문자의 위치값을 위함이고 안쪽 for문은 정수만큼 반복하기위해서 만든것이다
for문이 돌때마다 위치가 증가하여야 맞는위치에 들어가기에 x를 계속 증가 시킨다
문자열의 마지막은 NULL이 되야 하기에 마지막 x에 NULL을 넣는다
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120825
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90