본문 바로가기
C#/프로그래머스

[프로그래머스] C# : 수박수박수박수박수박수?

by TODAYCODE 2021. 7. 29.
반응형

프로그래머스 코딩테스트 연습 Level 1 - 수박수박수박수박수박수?

 

코딩테스트 연습 - 수박수박수박수박수박수?

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

programmers.co.kr

문제의 핵심

1. 출력의 규칙을 찾아낼 수 있는가?


 

쉬운 문제이고 풀이 방법도 굉장히 다양하다.

이번에는 조금 생각할 수 있는 방식으로 풀어보려고 한다.

 

먼저, 숫자를 입력받아서

처음에는 "수" 그다음엔 "박"을 차례로 출력하고자 한다.

이는 즉, 입력된 숫자가 2의 배수일때마다 "수박"이 한번 출력되는 것이다.

 

즉, 입력된 숫자를 2로 나눠서 발생한 몫 만큼 "수박"이 출력된다.

그리고 만약 나머지가 발생하면 "수"를 한번 더 입력해주면 된다.

 

이렇게 묶어서 단위로 생각하게 되면 굉장히 편리하다

만약, 2가 아니라 5의 배수와 같은 경우일 때

5로 나눈 몫만큼으로 묶어서 계산한 뒤에

발생한 나머지만큼은 마지막에 한번만 추가해주면 되므로

소스코드를 작성할 때도 편리하고

시간에서도 이점을 얻을 수 있다.

 

 

 

정답 코드

public class Solution {
    public string solution(int n)
    {
    // 입력된 숫자를 2로 나눈 몫을 구한다. -> 사실 곧장 for문의 조건식에 넣어줘도 된다.
        int Length = n/2;

        string answer = "";

        for (int i = 0; i < Length; i++)
        {
        // 몫만큼 수박을 더해준다.
            answer += "수박";
        }

        if (n%2 ==1)
        {
            answer += "수";
        }

        return answer;
    }
}
반응형

댓글