※ 코딩테스트 연습 문제의 지문, 테스트케이스, 풀이 등과 같은 정보는 비상업적, 비영리적 용도로 게시할 수 있습니다. 🔗

[프로그래머스] 직사각형 별찍기

문제 설명 🔗

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.

별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

제한 조건

  • n과 m은 각각 1000 이하인 자연수입니다.

예시

입력

5 3

출력

*****
*****
*****

Solution

#include <iostream>
using namespace std;

int main(void) {
    int a;
    int b;
    cin >> a >> b;
    
    for (int i = 0; i < b; i++) {
        for (int j = 0; j < a; j++)
            cout << "*";
        
        cout << endl;    
    }
    
    return 0;
}

for loop를 두 번 연속으로 돌리는게 마음에 들지 않아서 다른 분의 풀이를 살짝 찾아봤다.

#include <string>
...

int main(void) {
    ...
    string s;

    s.append(a, '*');

    for (int i = 0; i < b; ++i)
        cout << s << endl;

    return 0;
}

append() 사용을 위해서 #include <string>을 해주고 for loop 사용을 줄였다. 아주 간단한 문제지만 훨씬 간결하다. 이런 사소한 차이가 큰 프로젝트에서 많은 차이를 만들겠지.

오랜만에 C++을 사용하다보니 까먹은 함수가 너무 많다. 지금부터라도 하나씩 익히면서 빠르게 익숙해져야겠다.

Leave a comment