반응형
아무리 봐도 맞았는데 자꾸 출력 형식이 잘못되었다고 하길래 검색해봤다.
나와 같은 문제를 겪은 사람이 있었다.
omg
ㅋㅋ...
아무튼 출력형식 말고도 애초에 코드 짜면서 좀 애먹었던 문제.
*********
*******
*****
***
*
***
*****
*******
*********
N*N 크기의 정사각형이 있다고 가정.
각 줄마다 조건에 맞게 앞뒤로 *을 뺀 만큼 그 자리를 공백으로 채워주는 방식으로 처리했다.
물론 뒤쪽에도 열심히 공백을 채워줘서 결국 문제가 발생했지만.
아무튼 조건에 맞게 앞쪽에만 공백 채우고, 별 출력해주면 끝.
별 하나만 찍히는 중간지점을 기준으로 두 영역으로 나눠서 계산했다.
#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
int edge = 1 + 2 * (N - 1);
for (int i = 1; i < 2 * N; i++) {
if (i <= N) {
for (int blank1 = 0; blank1 < i - 1; blank1++) cout << " ";
for (int k = i - 1; k < edge - i + 1; k++) cout << "*";
cout << endl;
}
else if (i > N) {
for (int blank2 = 0; blank2 < N - 1 - (i - N); blank2++) cout << " ";
for (int k = N - 1 - (i - N); k < i; k++) cout << "*"; // k < N + (i - N)
cout << endl;
}
}
return 0;
}
반응형
'Training > BOJ' 카테고리의 다른 글
[C++] 1193 분수찾기 (0) | 2021.03.09 |
---|---|
[C++] 10996 별 찍기 - 21 (0) | 2020.08.10 |
[C++] 10809 알파벳 찾기 (0) | 2020.08.10 |
[C++] 2869 달팽이는 올라가고 싶다 (0) | 2020.08.08 |
[C++] 8958 OX퀴즈 (0) | 2020.08.03 |