상세 컨텐츠

본문 제목

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

PROGRAMMING

by koharin 2019. 3. 30. 08:25

본문

728x90
반응형

문제 설명::

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

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

 

제한 조건::

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

 

예시::

 

내가 작성한 코드::

#include<stdio.h>
int main(void)
{
	int n, m; //n: 가로, m: 세로
    int i, j;
    
    scanf("%d %d", &n, &m); //n, m 입력
    
    for(i = 0; i < m; i++) //m개의 줄마다
    {
    	for(j = 0; j < n; j++) //별(*) n개씩 출력
        	printf("*");
        printf("\n"); //한 줄 끝날 때마다 줄바꿈
    }
}

 

세로를 기준점으로 잡았다.

그래서 세로가 바깥 for loop이 되었고,

세로 줄마다 가로 길이만큼 별을 찍으므로 안쪽 for loop은 가로로 설정했다.

 

코드 채점을 하면 이렇게 여러 테스트 케이스들에 대해 코드를 돌리고 모두 통과되면

 

점수를 획득할 수 있다.

 

 

다른 사람들의 풀이를 볼 수 있어서 좋다.

유사한 풀이끼리 분류해놓았다.

 

유일하게 for loop을 사용하지 않은 풀이가 있었다.

 

#include<stdio.h>
int main(void)
{
	int n, m; //n: 가로, m: 세로
    int i;
    
    scanf("%d %d", &n, &m); //n, m 입력
    
    for(i = 0; i < n * m; i++) 
    {
    	printf("*"); //총 n * m개의 별(*)을 찍음
    	if((i + 1) % n == 0) //n * m의 별(*)을 찍는데 n의 배수마다 줄바꿈을 함
        	printf("\n"); 
    }
}

 

for loop 두 개인 것을 범위를 n * m으로 하나로 합쳐서 하므로

가로 길이만큼 갔을 때 줄바꿈을 하므로

별을 찍으면서 n의 배수마다 줄바꿈을 한다.

 

위의 코드와 형태만 다를 뿐 의미는 같다.

728x90
반응형

'PROGRAMMING' 카테고리의 다른 글

[ORACLE] sqlplus 출력 화면 설정  (0) 2021.04.05
코딩 테스트 연습하기  (0) 2021.01.04
Shell 구현  (0) 2020.05.23
[자료구조] postfix evaluation  (0) 2019.04.13
자료구조 정리하기: 재귀 호출(1)  (0) 2019.03.28

관련글 더보기