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