InputOutput(2)_print out star5_2442
백준 입출력(2)의 2442번 문제 별찍기5를 풀이해보도록 하겠습니다.
문제 URL : https://www.acmicpc.net/problem/2442
이번 문제 저는 이렇게 접근했습니다.
- 전체 출력 행은 n만큼 반복됨 => 가장 바깥 for문
- 앞쪽 공백문자 출력 => inner for문 1
- 가운데지점까지의 별 출력 => inner for문 2
- 가운데+1 이후 별 출력 => inner for문 3
- 가장 뒷쪽의 공백문자 출력 => inner for문 4 로 생각하여 2~5까지를 병렬로 배치하려고했어요!
그런데 5번은 없어도 같은 출력결과가 나오는데 불필요한 공백을 넣어준 것이니 삭제했습니다.
풀이 이후 다른분들의 풀이를 보니 * 출력시 i를 0부터 제어하여 2*i+1만큼 반복하도록하여 코드길이를 훨씬 줄이셨네요!
오늘도 부족함을 느끼고 갑니다 ㅎㅎ
Source Code :
#include<iostream>
/*#include<vector>
#include<algorithm>
#include<queue>
#include<string>
#include<set>
#include<map>
#include<cstring>
#include<functional>
#include<cmath>
#include<stack>*/
// #define SIZE 1010
using namespace std;
// typedef long long int ll;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
/* 변수 선언 ,*/
int n;
/* 입력 */
cin >> n;
/* 처리 & 출력 */
for (int i = 1; i <= n; i++) {
for (int j = i; j < n; j++) {
cout << " ";
}
for (int j = 1; j <= i; j++) {
cout << "*";
}
for (int j = 1; j < i; j++) {
cout << "*";
}
/*for (int j = i; j < n; j++) {
cout << " ";
}*/
cout << "\n";
}
return 0;
}
개인이 공부하고 포스팅하는 블로그입니다. 작성한 글 중 오류나 틀린 부분이 있을 경우 과감한 지적 환영합니다!