-
JUNGOL...46일지 2021. 2. 22. 21:04
Beginner_Coder/도형만들기2/별삼각형1
문제
삼각형의 높이 n과 종류 m을 입력 받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오.
*
**
***
****
**********
****
***
**
**
***
*****
*******
*********종류1 종류2 종류3 입력 형식
삼각형의 크기 n(n의 범위는 100 이하의 자연수)과 종류 m(m은 1부터 3사이의 자연수)을 입력받는다.
출력 형식
위에서 언급한 3가지 종류를 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다.
입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"을 출력한다.
입력 예
3 2 | 4 3 | 200 3
출력 예
*** │ * | INPUT ERROR!
** │ ***
* │ *****
│*******
StarTriangle1.h
#include <iostream> class StarTriangle1 : public Base { private: void Case1(int n); void Case2(int n); void Case3(int n); }
StarTriangle1.cpp
void StarTriangle1::Code() { int n, m; std::cin >> n >> m; if (n < 1 || n > 100 || m < 1 || m > 3) { std::cout << "INPUT ERROR!"; } else { switch (m) { case 1: Case1(n); break; case 2: Case2(n); break; case 3: Case3(n); break; } } } void StarTriangle1::Case1(int n) { for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { std::cout << '*'; } std::cout << '\n'; } } void StarTriangle1::Case2(int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n - i; j++) { std::cout << '*'; } std::cout << '\n'; } } void StarTriangle1::Case3(int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n - i - 1; j++) { std::cout << ' '; } for (int j = 0; j < 2 * i + 1; j++) { std::cout << '*'; } std::cout << '\n'; } }
Beginner_Coder/도형만들기2/별삼각형2
문제
삼각형의 높이 n과 종류 m을 입력 받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오.
다음은 n이 5인 경우의 예시이다.
*
* *
* * *
* *
**
* *
* * *
* *
** * * * *
* * *
*
* * *
* * * * ** * *
* *
*
* *
* * *종류1 종류2 종류3 종류4 입력 형식
삼각형의 크기 n(n의 범위는 100 이하의 홀수)과 종류 m(m은 1부터 4사이의 정수)을 입력받는다.
출력 형식
위에서 언급된 4가지 종류를 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다.
입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"을 출력한다.
'*'과 '*' 사이에는 공백이 없다.
입력 예
5 1 | 7 4
출력 예
* | ****
** | ****** | **
** | *
* | **| ***
| ****
StarTriangle2.h
#include <iostream> class StarTriangle2 : public Base { private: void Case1(int n); void Case2(int n); void Case3(int n); void Case4(int n); }
StarTriangle2.cpp
void StarTriangle2::Code() { int n, m; std::cin >> n >> m; if (n < 1 || n > 100 || n % 2 == 0 || m < 1 || m > 4) { std::cout << "INPUT ERROR!"; } else { switch (m) { case 1: Case1(n); break; case 2: Case2(n); break; case 3: Case3(n); break; case 4: Case4(n); break; } } } void StarTriangle2::Case1(int n) { for (int i = 0; i <= n / 2; i++) { for (int j = 0; j <= i; j++) { std::cout << '*'; } std::cout << '\n'; } for (int i = 0; i < n / 2; i++) { for (int j = 0; j < n / 2 - i; j++) { std::cout << '*'; } std::cout << '\n'; } } void StarTriangle2::Case2(int n) { for (int i = 0; i <= n / 2; i++) { for (int j = 0; j < n / 2 - i; j++) { std::cout << ' '; } for (int j = 0; j <= i; j++) { std::cout << '*'; } std::cout << '\n'; } for (int i = 0; i < n / 2; i++) { for (int j = 0; j <= i; j++) { std::cout << ' '; } for (int j = 0; j < n / 2 - i; j++) { std::cout << '*'; } std::cout << '\n'; } } void StarTriangle2::Case3(int n) { for (int i = 0; i <= n / 2; i++) { for (int j = 0; j < i; j++) { std::cout << ' '; } for (int j = 0; j < n - 2 * i; j++) { std::cout << '*'; } std::cout << '\n'; } for (int i = 0; i < n / 2; i++) { for (int j = 0; j < n / 2 - 1 - i; j++) { std::cout << ' '; } for (int j = 0; j < 2 * i + 3; j++) { std::cout << '*'; } std::cout << '\n'; } } void StarTriangle2::Case4(int n) { for (int i = 0; i <= n / 2; i++) { for (int j = 0; j < i; j++) { std::cout << ' '; } for (int j = 0; j <= n / 2 - i; j++) { std::cout << '*'; } std::cout << '\n'; } for (int i = 0; i < n / 2; i++) { for (int j = 0; j < n / 2; j++) { std::cout << ' '; } for (int j = 0; j <= i + 1; j++) { std::cout << '*'; } std::cout << '\n'; } }
Beginner_Coder/도형만들기2/별삼각형3
문제
삼각형의 높이 N을 입력받아 아래와 같은 모양을 출력하는 프로그램을 작성하시오.
입력 형식
삼각형의 높이 N(N의 범위는 100 이하의 양의 홀수)을 입력받는다.
출력 형식
N의 높이에 맞추어 주어진 형태의 모양을 출력한다.
입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"를 출력한다.
입력 예
7
출력 예
*
***
*****
*******
*****
***
*
StarTriangle3.h
#include <iostream>
StarTriangle3.cpp
void StarTriangle3::Code() { int n; std::cin >> n; if (n < 1 || n > 100 || n % 2 == 0) { std::cout << "INPUT ERROR!"; } else { for (int i = 0; i <= n / 2; i++) { for (int j = 0; j < i; j++) { std::cout << ' '; } for (int j = 0; j < 2 * i + 1; j++) { std::cout << '*'; } std::cout << '\n'; } for (int i = n / 2; i > 0; i--) { for (int j = 0; j < i - 1; j++) { std::cout << ' '; } for (int j = 0; j < i * 2 - 1; j++) { std::cout << '*'; } std::cout << '\n'; } } }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)