#include <stdio.h>
int main() {
int N = 0;
int j = 0;
int k = 0;
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
for (j = N; j > N-i; j--)
{
printf(" ");
}
for (k=N-i; k > 0; k--)
{
printf("*");
}
printf("\n");
}
return 0;
}
< 코드 해석>
생각보다 더 헷갈린 문제였따..
이중 포문을 사용을해서 5번 5줄을 이용하는 문제이다.
1 공백을 출력을 해줘야하는데 공백은 0개 ~ 4개까지 출력을 해줘야한다.
그런데 계속 원한는 출력이 안나왔다.
공백이 5개씩만 나오거나 아예출력이 안되거나 4321순으로 출력되는 난리가 났었다.
하지만 N-i를 해준 이유가 있다
N은 5로 값이 고정이고 처음에 j에게 N의 값을 넣어줬으니 5==5해서 공백이 출력이 안된다. 그다음에는 i의 값이 1증가해서 N-i이 4니깐 5>4로 한 번 공백이 출력된다. 그다음에 j값이 후위 연산자로 1줄어서 4로 되니 4==4 로 공백이 안나온다. 이렇게 하니 원하는 결과를 얻을 수 있었다.
2 *을 넣어주는 것은 생각보다 단순해서 금방해결했다. 공백이 힘들었다..
j와 반대로 해주었다 k는..
지금 생각해보면 j와 k가 반대일텐데 그것을 캐치하지 못했다
그래도 잘 마무리했다~^^
더 좋은 방식이 있으면 알려주시면 감사합니다
백준 2441 별 찍기 -4<실패> (tistory.com)
실패 -> 성공
[백준] BOJ_2810번_컵홀더_C/C++ (0) | 2022.09.05 |
---|---|
[백준 - 브3] 10818 최소, 최대 - C/C++ (0) | 2022.09.05 |
[백준 - 브5] 1330 두 수 비교하기 C언어 (0) | 2022.09.03 |
[백준 - 실5] 1476 날짜 계산 C언어 (4) | 2022.09.02 |
백준 10869 사칙연산 (0) | 2022.07.05 |
댓글 영역