반응형


아무리 봐도 맞았는데 자꾸 출력 형식이 잘못되었다고 하길래 검색해봤다.
나와 같은 문제를 겪은 사람이 있었다.

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; }
반응형
'Devlog > Coding Practice' 카테고리의 다른 글
[C++][Warmup] Time Conversion (0) | 2020.09.06 |
---|---|
[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 |