본문 바로가기
나롱/개자인

코드업 1369 빗금친 사각형 출력

by 나롱 2021. 3. 5.

 

 

 

 

 

해당 문제를 푸는데 좀 애를 먹어서 풀고나서 올려보는 것입니듕. 문제는 코드업에서 풀고있고 1369에 대한 풀이입니다. 문제를 풀면서 느끼는거지만 이해가 잘 안되면 문제를 한 번 그려보는것이 큰 도움이 되는 것 같아서 앞으로 종종 메모를 하면서 풀어야 겠어요.

 

[문제]

nnn∗n 사각형에서 k간격 마다 빗금을 친 사각형을 출력하는 프로그램을 작성하시오.

윗변을 기준으로 왼쪽에서 부터 k간격마다 ↙방향으로 빗금을 그으시오.

 

[해설]

이 문제에서 예시로 10 3 이 입력되는 경우를 보여줬으니 해설도 10 3의 기준으로 하겠다. 출력은 아래와 같이 되어야겠고, 이 그림의 패턴을 우선 분석하는것이 먼저이다. 매 줄마다 2칸씩의 간격을 두고 (*)이 출력되고 있다. 해당 출력 결과물을 그림으로 그려보자. 

 

 

그려둔 그림에서 별이 출력되는 곳들을 따로 표시해두었는데 자세히 보니 j+i 의 값이 2,5,8,11,14,17 ... 으로 커지는 패턴을 확인할 수 있다.그렇다면 이걸 어떻게 조건을 걸어줘야할까? (j+i+1)%rep==0 이렇게 걸어주면 빗금쳐질 부분에 (*)이 잘 출력될 수 있다.

 

해당 해설을 기준으로해서 코드는 이렇게 작성된다.

 

#include <stdio.h>

int main(void)
{
  int num, rep;
  int i, j;

  scanf("%d %d", &num, &rep);
  for(i=0; i<num; i++)
  {
    for(j=0; j<num; j++)
    {
      if(i==0 || i==num-1 || j==0 || j==num-1 || (j+i+1)%rep==0)
      {
        printf("*");
      }
      else
      {
        printf(" ");
      }
    }
    printf("\n");
  }
  return 0;
} 

 

 

 

 

 

 

'나롱 > 개자인' 카테고리의 다른 글

WEB : 파비콘 등록하기  (1) 2023.10.04
코드업 1099 성실한 개미 문제 풀이  (0) 2021.04.06
이중 for문을 이용한 피라미드 출력  (0) 2021.03.02
ASCII 코드와 UNICODE  (0) 2020.10.13
SVG이미지에 대해  (0) 2020.10.03