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

문제 링크

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

분석

문자 길이에 따라 글자를 출력하는 문제입니다.
짝수와 홀수를 구분해서 짝수와 0에서는 수를 출력하고, 홀에서는 박을 출력합니다

반복문을 사용하면 됩니다.

풀이

반복문으로 한번씩 값을 넣어주는 방법입니다.

#include <string>

std::string solution(int n) {
    std::string answer = "";
    
    for (int i = 0; i < n; ++i)
    {
        if(i % 2 == 0)
        {
            answer += "수";
        }
        else
        {
            answer += "박";
        }
    }
    
    return answer;
}

위의 풀이에서 반복문의 반복 횟수를 절반으로 줄일 수 있습니다.

#include <string>

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

위의 풀이와 다르게 if(n % 2 == 1)으로 마지막 1글자 남아있는지 확인해서 `수`를 붙여줍니다

성능 요약

반복문으로 한번씩 값을 넣어준 성능입니다.

테스트 1 〉 통과 (0.03ms, 4.19MB)
테스트 2 〉 통과 (0.04ms, 4.14MB)
테스트 3 〉 통과 (0.04ms, 4.19MB)
테스트 4 〉 통과 (0.06ms, 4.2MB)
테스트 5 〉 통과 (0.04ms, 4.2MB)
테스트 6 〉 통과 (0.01ms, 4.21MB)
테스트 7 〉 통과 (0.01ms, 4.21MB)
테스트 8 〉 통과 (0.01ms, 3.68MB)
테스트 9 〉 통과 (0.01ms, 4.13MB)
테스트 10 〉 통과 (0.01ms, 3.68MB)
테스트 11 〉 통과 (0.01ms, 4.42MB)
테스트 12 〉 통과 (0.01ms, 4.2MB)
테스트 13 〉 통과 (0.01ms, 4MB)
테스트 14 〉 통과 (0.01ms, 4.2MB)
테스트 15 〉 통과 (0.11ms, 4.19MB)
테스트 16 〉 통과 (0.01ms, 4.17MB)


반복문의 반복 횟수를 절반으로 줄인 성능입니다.

테스트 1 〉 통과 (0.02ms, 4.21MB)
테스트 2 〉 통과 (0.03ms, 4.22MB)
테스트 3 〉 통과 (0.03ms, 3.63MB)
테스트 4 〉 통과 (0.07ms, 4.22MB)
테스트 5 〉 통과 (0.04ms, 4.12MB)
테스트 6 〉 통과 (0.01ms, 4.2MB)
테스트 7 〉 통과 (0.01ms, 4.25MB)
테스트 8 〉 통과 (0.01ms, 4.14MB)
테스트 9 〉 통과 (0.01ms, 4.21MB)
테스트 10 〉 통과 (0.01ms, 3.64MB)
테스트 11 〉 통과 (0.01ms, 3.68MB)
테스트 12 〉 통과 (0.01ms, 4.17MB)
테스트 13 〉 통과 (0.01ms, 3.75MB)
테스트 14 〉 통과 (0.01ms, 4.21MB)
테스트 15 〉 통과 (0.08ms, 4.14MB)
테스트 16 〉 통과 (0.01ms, 4.21MB)

Programmers 카테고리 내 다른 글 보러가기

댓글남기기