<알고리즘 문제풀이&연습>/[C++] 백준, 프로그래머스 등등

[백준 2442] 별찍기5

BlockDMask 2017. 11. 13. 01:00
반응형
  • 안녕하세요 BlockDMask 입니다.

  • 별찍기 14개 중에 5번째 입니다.

  • 사촌형님이 제 스타일이 너무 C언어 스타일이라 하셔서;;

  • C++ 스타일로 해보려고 시도 하고 있습니다.

  • 혹시 이상한 점이 있으면 말씀해 주세요!
    171024 문제 빼먹음 -> 171113 완료

0. 제목

  • 백준 2442 별찍기5

  • BOJ 2442 별찍기5

1. 문제 설명

  • 첫째 줄에는 별 1개, 둘째 줄에는 별 3개 
    N 번째 줄에는 별 2*N-1개를 찍는 문제입니다.
    별은 가운데를 기준으로 대칭 이어야합니다.

  • 입력 N (1<=N<=100)

  • 입력 이 6 이면 이런식으로 나와야합니다.

2. 풀이 과정

  • 각 줄에
    공백을 0~n-1, 별을 1개
    공백을 0~n-2, 별을 3개.
    .
    .
    .
    공백 0개, 별을 2*i +1 개 출력. 
    (i = n-1 입니다.)

  • 2*i +1 은 n으로 치환하면  2*(n-1) + 1  이므로 2n-1이 됩니다.


3. 소스코드


C언어.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//https://www.acmicpc.net/problem/2442
//BOJ_2442_star5
 
#include<iostream>
#include<cstdio>
using namespace std;
int main(void){
    int n;
    cin >> n;
 
    for(int i=0; i<n; i++){
        //0~n-1, 0~n-2, . . . 0 까지 각줄에 공백 출력
        for(int j=0; j<n-i-1; j++printf(" ");
        //1, 3, 5, . . .  홀수로 * 출력
        for(int k=0; k<2*i+1; k++printf("*");
        printf("\n");
    }
    return 0;
}
cs

C++ 언어.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//https://www.acmicpc.net/problem/2442
//BOJ_2442_star5
 
#include<iostream>
#include<cstdio>
using namespace std;
class star{
private:
    int n;
public:
    star(){}
    ~star(){}
 
    void solve(int n){
        this->= n;
        for(int i=0; i<n; i++) printStar(i);
    }
 
    void printStar(const int& i) const{
        //0~n-1, 0~n-2, . . . 0 까지 각줄에 공백 출력
        for(int j=0; j<n-i-1; j++printf(" ");
        //1, 3, 5, . . .  홀수로 * 출력
        for(int k=0; k<2*i+1; k++printf("*");
        printf("\n");
    }
};
 
 
int main(void){
    int n;
    cin >> n;
    star *= new star;
    s->solve(n);
    return 0;
}
cs


4. 인증


C언어


C++


문제출처 : https://www.acmicpc.net/problem/2442

감사합니다.

반응형