-
[프로그래머스 Lv.1]수박수박수박수박수Study/Programmers 2021. 7. 7. 00:35
문제 : 수박수박수박수?
문제 설명
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
제한 조건
- n은 길이 10,000이하인 자연수입니다.
입출력 예
n return
3 "수박수" 4 "수박수박" 코드 구현
1) C언어로 구현
#include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <string.h> char* solution(int n) { // 리턴할 값은 메모리를 동적 할당해주세요. char * answer = (char*)malloc(sizeof(char)*(n * 3)); //덤프 방지를 위해 *3을 함 strcpy(answer,""); for(int i = 0; i < n; i++) if(i % 2 == 0) strcat(answer,"수"); else strcat(answer,"박"); return answer; }
2) Python으로 구현
def solution(n): answer = '' for i in range (n): if i % 2 == 0: answer += '수' else: answer += '박' return answer
다른 사람 풀이
1. 수박을 여러개 이어붙인 후에 글자수대로 자르는 방식 (출처: -님)
이 코드를 보고 무척이나 좋은 코드라고 생각했지만 불필요한 메모리를 차지하게 된다는 단점도 가지고 있는 것 같다.
def water_melon(n): s = "수박" * n return s[:n]
2. 불필요한 메모리 사용 없이 구현하는 방법 (출처 : -님)
def water_melon(n): return "수박"*(n//2) + "수"*(n%2)
'Study > Programmers' 카테고리의 다른 글
[프로그래머스 Lv.1]자연수 뒤집어 배열로 만들기 (0) 2021.07.07 [프로그래머스 Lv.1]하샤드 수 (0) 2021.07.07 [프로그래머스 Lv.1]평균구하기 (0) 2021.07.06 [프로그래머스 Lv.1]핸드폰 번호 가리기 (0) 2021.07.06 [프로그래머스 Lv.1]짝수와 홀수 (0) 2021.07.06