Table of contents
www.hackerrank.com/challenges/staircase/problem
1. 정리
HackerRank의 계단식 출력 문제입니다. 먼저, 정수를 입력 받고 staircase 함수에 인자로 전달해줍니다.
int n;
cin >> n;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
staircase(n);
staircase 함수는 이 인자를 받아 처리하게 됩니다. 일단, 입력 받은 정수의 수와 계단식 출력의 줄수가 똑같으므로 정수만큼의 반복문을 만들어줍니다. 그리고 공백의 개수와 #의 개수만큼 추가로 출력해줍니다. 현재, 출력하는 행과 반비례하므로 감산하는 반복문을 만들어줍니다. 반대로, #의 개수는 현재, 출력하는 행과 비례하므로 가산하는 반복문을 만들어줍니다.
코드로는 다음과 같습니다.
void staircase(int n) {
for (int i = 0; i < n; i++) { //총 줄의 개수만큼 반복
for (int j = n-i; j > 1; j--) { //현재 출력중인 줄의 띄어쓰기 개수만큼 반복
cout << " ";
}
for (int j = 0; j <= i; j++) { //현재 출력중인 줄의 # 개수만큼 반복
cout << "#";
}
cout << endl;
}
}
2. 전체코드
#include <bits/stdc++.h>
using namespace std;
// Complete the staircase function below.
void staircase(int n) {
for (int i = 0; i < n; i++) { //총 줄의 개수만큼 반복
for (int j = n-i; j > 1; j--) { //현재 출력중인 줄의 띄어쓰기 개수만큼 반복
cout << " ";
}
for (int j = 0; j <= i; j++) { //현재 출력중인 줄의 # 개수만큼 반복
cout << "#";
}
cout << endl;
}
}
int main()
{
int n;
cin >> n;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
staircase(n);
return 0;
}
'소프트웨어 > C++' 카테고리의 다른 글
[HackerRank] C++ Time Conversion (0) | 2022.02.13 |
---|---|
C++ cin, cout 다중 변수 입출력 예제 (0) | 2022.02.13 |
C++ lower_bound, upper_bound 활용하기 (0) | 2022.02.13 |
C++ 주요 STL(Standard Template Library) 내용 정리 (0) | 2022.02.13 |
C++ tuple로 이루어진 vector 요소 추가, 정렬, 출력 (0) | 2022.02.13 |