게임 클라이언트 개발/알고리즘 문제

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

주운녕 2020. 8. 7. 11:25

[출처 : 프로그래머스]

문제

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


제한 조건

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


풀이

  • goorm에서 많이 보았던 이중 반복문을 활용한 별 찍기 문제이다.
#include <stdio.h>

int main(void) {
    int a;
    int b;
    scanf("%d %d", &a, &b);
    for(int i=0; i<b; i++){
        for(int j=0; j<a; j++)
            printf("*");
        printf("\n");
    }
    return 0;
}

 

  • 이중 반복문이라 시간 복잡도가 O(n*m)인데 누군가 시간 복잡도 O(n)으로 만들어 작성한 코드가 있어 첨부한다.
  • 줄 바꿈을 판단하는 코드를 넣어서 for문을 한번만 사용하였다.
#include <stdio.h>

int main(void) {
    int a;
    int b;
    scanf("%d %d", &a, &b);
    for(int i=0; i<a*b;i++){
        printf("*");
        if((i+1)%a == 0){
            printf("\n");
        }
    }

    return 0;
}

이제 프로그래머스 LEVEL 1 C언어 문제는 모두 끝났다!! 이제부턴 LEVEL 2로 간다 숑숑


* 개인적인 학습 목적으로 작성한 글이기에 내용에 잘못된 정보가 있을 수 있습니다.

* 문제 출처 - https://programmers.co.kr/learn/courses/30/lessons/12969