본문 바로가기

c언어 스터디/HackerRank

[HackerRank] Staircase

https://www.hackerrank.com/challenges/staircase/problem

 

Staircase | HackerRank

Print a right-aligned staircase with n steps.

www.hackerrank.com

 

<문제>

계단의 총 크기를 알려주는 n 값을 입력했을 때, #문자와 공백을 이용해 n크기의 계단을 출력하는 문제이다. 

 

<코드> -staircase()함수 구현

void staircase(int n) {
    for(int i=1; i<=n;i++){
        for(int j=1; j<=n; j++){
            if(n-j<i){
                printf("#");
            }
            else{
                printf(" ");
            }
        }
        printf("\n");
    }

}

<코드 설명>

  중첩반복문을 사용하여 문제를 해결했다. 바깥쪽 loop는 문장의 위치를 나타내고, 안쪽 loop는 문장의 위치만큼 #개수를 바꾸면서 출력한다. 

안쪽 반복문에서는 if-else를 이용해 총 계단의 크기인 n에서 j를 뺐을 때, 현재 문장 위치인 i보다 작으면 #을 출력, 아니면 공백을 출력하게 하였다. 

그리고 내부 반복문이 한 번 종료될 때마다 줄바꿈문자가 출력되도록 하였다.

 

<결과>