본문 바로가기

Algorithm/Programers - C++

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

문제

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

 

풀이 1

#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;
}

추억의 직사각형 별 찍기!

전공으로 C언어를 배우면서 제일 처음 풀었던 알고리즘인데

그때 당시에는 위의 방법으로 이중 반복문을 사용해서 풀었던 기억이 난다.

 

풀이 2

#include <iostream>
#include <string>
using namespace std;

int main(void) {
    int a;
    int b;
    string s;
    cin >> a >> b;
    s.append(a, '*');
    for(int i=0; i<b; i++){
        cout << s;
        cout << endl;
    }
    
    return 0;
}

string의 append를 사용하여 미리 한 줄을 만들어놓으면, 반복문 하나로 풀 수 있다.