발자취
[프로그래머스 Lv.1 / C언어] Day43. 수박수박수박수박수박수? 본문
2024. 07. 16 - 코딩테스트 스터디 Day43
01. 문제 설명
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를 들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
02. 제한사항
- n은 길이 10,000이하인 자연수입니다.
03. 입출력 예
| n | return |
| 3 | "수박수" |
| 4 | "수박수박" |
04. 풀이 및 답
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
char* solution(int n) {
// 리턴할 값은 메모리를 동적 할당해주세요.
char* answer = (char*)malloc(n * strlen("수"));
strcpy(answer, "");
for (int i = 1; i <= n; i++) {
if (i % 2) strcat(answer, "수");
else strcat(answer, "박");
}
return answer;
}우선 "수"의 크기에 n을 곱한 만큼의 메모리 공간을 할당받은 뒤, 배열을 초기화한다. (초기화하지 않으면 쓰레기값이 들어가 오류 발생)
i가 1일 때부터 n이 될 때까지 반복문을 돌면서 i가 홀수면 answer의 맨 뒤에 "수"를, 짝수면 "박"을 이어 붙이도록 한다.
💎 strcat(문자열A, 문자열B) 함수💎
: 문자열A의 뒤에 문자열B를 이어 붙임.

정답!

끝~
'코딩테스트 > Daily Coding (C, C++)' 카테고리의 다른 글
| [프로그래머스 Lv.1 / C언어] Day45. 문자열 내림차순으로 배치하기 (0) | 2024.07.18 |
|---|---|
| [프로그래머스 Lv.1 / C언어] Day44. 내적 (0) | 2024.07.17 |
| [백준 / C언어] Day42. 일곱 난쟁이 (2309) (0) | 2024.07.15 |
| [백준 / C언어] Day41. 골드바흐의 추측 (6588) (0) | 2024.07.14 |
| [백준 / C언어] Day40. 소수 구하기 (1929) (0) | 2024.07.13 |