본문 바로가기
프로그래머스 코딩테스트 문제/Level 1

[프로그래머스] - 수박수박수박수박수박수?(C#)

by jyppro 2023. 8. 3.

수박수박수박수박수박수?

이번에 살펴 볼 문제는 "수박수박수박수박수박수?" 입니다. 문제 이름이 어떤 문제인지 전혀 예측이 안가지만 재밌는 이름이라 기대가 되네요 문제를 풀어보도록 하겠습니다.

 

문제 설명

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

 

제한 조건

  • n은 길이 10,000이하인 자연수입니다.

 

입출력 예

n return
3 "수박수"
4 "수박수박"

 

시작 코드

public class Solution {
    public string solution(int n) {
        string answer = "";
        return answer;
    }
}

 

나의 풀이

public class Solution {
    public string solution(int n)
    {
        int Length = n/2;
        string answer = "";
        for (int i = 0; i < Length; i++) { answer += "수박"; }
        if (n%2 ==1) { answer += "수"; }
        return answer;
    }
}

 

코드 분석

int형 n이 주어지며 시작됩니다. int형으로 Length를 선언하고 n/2를 넣어줍니다. for문을 0부터 Length만큼 돌려 answer에 문자열 "수박"을 추가해줍니다. for문 이후 if문을 통해 n을 2로 나눈 나머지가 1이라면 answer에 문자열 "수"를 추가해 줍니다. 최종적으로 answer를 리턴합니다.

 

풀이 설명

특이한 제목이지만 문제는 생각보다 간단했습니다. "수박"의 패턴을 가지는 문자열에서 n의 길이만큼을 리턴하는 것입니다. n이 3이면 "수박수" 가 됩니다. 문자열 "수박"은 2의 배수로 패턴이 반복되므로 n을 2로 나눈 몫 만큼 for문을 돌려 "수박"을 넣어준 뒤에 나머지가 있다면 무조건 1이므로 if문을 통해 문자열 "수"를 추가로 넣어줍니다.

 

<NEXT>

오늘은 "수박수박수박수박수박수?" 문제를 풀어보았습니다. 다음에는 월간 코드 챌린지 시즌1에 출제문제 중 하나인 "내적"을 다뤄보도록 하겠습니다. 감사합니다.