[ 문제 ] : https://www.acmicpc.net/problem/2438
2438번: 별 찍기 - 1
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
www.acmicpc.net
[ 문제 접근 ]
- 기본 별 찍기 문젠데, 고민도 말고 풀어야됨에도 고민을 하게 되서 기록해본다.
[ 2438 ]
첫번째 방법.
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
cout << "*";
}
cout << std::endl;
}
두번째 방법.
string star ="";
for (int i = 0; i < n; i++) {
star += "*";
cout << star << '\n';
}
[ 2439 ]
첫번째 방법.
std::string star = "";
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
cout << ' ';
}
star += "*";
cout << star << '\n';
}
두번째 방법.
std::string star = "";
for (int i = 0; i < n; i++) {
cout << std::setw(n);
star += "*";
cout << star <<'\n';
}
세번째 방법.
for (int i = 1; i <= n; i++) {
for (int j = n - i; j > 0; j--) cout << " ";
for (int j = i; j >0 ; j--) cout << "*";
cout << std::endl;
}
[ 2440 ]
for (int i = 0; i <n; i++) {
for (int j = n-i; j > 0; j--) {
cout << "*";
}
cout << std::endl;
}
[ 2441 ]
첫번째 방법
for (int i = 0; i <n; i++) {
for (int j = 0; j < i; j++) {
cout << " ";
}
for (int j = i; j < n; j++) {
cout << "*";
}
cout << std::endl;
}
두번째 방법.
for (int i = 0; i < N; i++){
for (int j = 0; j < i; j++) cout << " ";
for (int j = N-i ; j >0 ; j--) cout << "*";
cout << endl;
}
[ 2442 ]
첫번째 방법
for (int i = 0; i < n; i++) {
for (int j = 1; j < n-i; j++) {
cout << " ";
}
for (int j = 0; j < 2*i+1; j++) {
cout << "*";
}
cout << std::endl;
}
두번째 방법.
for (int i = 0; i < n; i++) {
for (int j = 0; j < n-i-1; j++) {
cout << " ";
}
for (int j = 0; j < 2*i+1; j++) {
cout << "*";
}
cout << std::endl;
}
[ 2443 ]
첫번째 방법
for (int i = n; i > 0; i--) {
for (int j = 0; j < n-i; j++) {
cout << " ";
}
for (int j = 0; j < 2 * i - 1; j++) {
cout << "*";
}
cout << std::endl;
}
두번째 방법.
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) cout << " ";
for (int j = 0; j < 2 * (n - i) - 1; j++) cout << "*";
cout << std::endl;
}
[ 2445 ]
첫번째 방법
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
cout << "*";
}
for (int j = 0; j < 2 * (n - i - 1); j++) {
cout << " ";
}
for (int j = 0; j <=i; j++) {
cout << "*";
}
cout << std::endl;
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < n - i; j++) {
cout << "*";
}
for (int j = 0; j < 2 * i;j++) {
cout << " ";
}
for (int j = 0; j < n - i; j++) {
cout << "*";
}
cout << std::endl;
}
두번째 방법
for (int i = -(N-1) ; i < N ; i++)
{
for (int j = 0; j < N - abs(i); j++) cout << "*";
for (int j = 0; j < abs(i)*2; j++) cout << " ";
for (int j = 0; j < N - abs(i); j++) cout << "*";
cout << endl;
}
[ 2446 ]
첫번째 방법.
for (int i = -(n-1); i < n;i++) {
for (int j = 0; j < n-std::abs(i)-1; j++) {
cout << " ";
}
for (int j = 0; j < 2*std::abs(i)+1; j++) {
cout << "*";
}
/* 아래는 생략해줘 된다. 생략 안해주면 백준에서 실패라고 뜬다
for (int j = 0; j < n-std::abs(i)-1; j++) {
cout << " ";
}*/
cout << std::endl;
}
두번째 방법.
for (int i = 0; i < N; i++)
{
for (int j = 0; j < i; j++)
cout << " ";
for (int j = 0; j < 2 * (N - i) - 1; j++)
cout << "*";
cout << endl;
}
for (int i = 0; i < N - 1; i++)
{
for (int j = 0; j < N-i-2; j++)
cout << " ";
for (int j = 0; j < 2 * (i+2) - 1; j++)
cout << "*";
cout << endl;
}
[ 2522 ]
첫번째 방법.
for (int i = 0; i < n; i++) {
for (int j = 0; j < n-i-1; j++) {
cout << " ";
}
for (int j = 0; j < i+1; j++) {
cout << "*";
}
cout << std::endl;
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
cout << " ";
}
for (int j = i; j < n; j++) {
cout << "*";
}
cout << std::endl;
}
두번째 방법
for (int i = -(n-1); i < n; i++) {
for (int j = 0; j < std::abs(i); j++) {
cout << " ";
}
for (int j = 0; j < n-std::abs(i); j++) {
cout << "*";
}
cout << std::endl;
}
[ 10991 ]
첫번째 방법.
for (int i = 1; i <= n; i++) {
for (int j = 0; j < n-i; j++) {
cout << " ";
}
for (int j = 0; j < 2*i-1; j++) {
if (j % 2 == 0) {
cout << "*";
}
else {
cout << " ";
}
}
cout << std::endl;
}
두번째 방법
for (int i = 1; i <= n; i++) {
for (int j = 0; j < n-i; j++) {
cout << " ";
}
int toggle = 1;
for (int j = 0; j < 2*i-1; j++) {
if (toggle == 1)cout << "*";
else cout << " ";
toggle *= -1;
}
cout << std::endl;
}
세번째 방법
for (int i = 1; i <= N; i++){
for (int j = 0; j < (N - i); j++) cout << " ";
for (int j = (N - i); j < N; j++){
cout << "*" << " ";
}
cout << endl;
}
[ 10991 ]
첫번째 방법.
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
cout << " ";
}
for (int j = 1; j <= 2*i-1; j++) {
if (i == n) {
for (int j = 0; j < 2 * i - 1; j++) {
cout << "*";
}
break;
}
if (j == 1 || j == 2 * i - 1) {
cout << "*";
}
else cout << " ";
}
cout << std::endl;
}
두번째 방법
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N - i - 1; j++) cout << " ";
if (i == (N - 1))
{
for (int j = 0; j < i * 2 + 1; j++) cout << "*";
}
else
{
for (int j = 0; j < i * 2 + 1; j++){
if (j == 0 || j == (i * 2)) cout << "*";
else cout << " ";
}
}
cout << endl;
}
'PS > BaekJoon' 카테고리의 다른 글
[1475] 방 번호 - 배열 ★☆☆☆ / 복습 ● (0) | 2021.11.23 |
---|---|
[1005] ACM Craft - 위상정렬 ★★☆☆ / 복습 ○ (0) | 2021.11.20 |
[9205] 맥주 마시면서 걸어가기 - BFS ★☆☆☆ / 복습 ○ (0) | 2021.11.18 |
[1924] 2007 - 입출력 ☆☆☆☆ / 복습 ○ (0) | 2021.11.18 |
[11404] 플로이드 - 최단 경로 ★☆☆ / 복습 ○ (0) | 2021.11.18 |