programming

Hackerrank 프로그래밍 퀴즈 Staircase 풀이 및 해설


by Kitle · 2020. 07. 31.



Hackerrank 프로그래밍 퀴즈 Staircase 풀이 및 해설입니다.

원본 출처 : 출처보기

github 에서 풀이 코드 보기 : github로 이동하기


문제

밑변과 높이가 모두 n과 같으며 이미지는 # 기호와 공백을 사용하여 그려집니다. 마지막 줄 앞에는 공백이 없습니다.


해설

프로그래밍 퀴즈 또는 프로그래밍을 연습하는 가운데 가장 많이 하는 *늘려가며 찍기와 동일한 퀴즈라고 볼 수 있습니다. #모양을 계단식으로 하고요. 일정한 숫자가 주어졌을 때 반복해서 늘려가면서 또는 줄여가면서 푸는 것이 핵심이라고 볼 수 있어요. 해당 퀴즈에서는 공백과 #을 이용하여 출력하고자 합니다.


솔루션

1. For 문을 활용하여 반복합니다.

2. 입력한 n의 길이를 측정하여 " "공백은 점점 줄이고, #은 점점 늘립니다.

3. 예를들어 n 이 5라면 _ _ _ _ # 이렇게 공백은 n-1 그리고 #은 1부터 시작해 하나씩 빼고, 하나씩 더하면 되겠습니다.

4. python은 문자열 곱이 가능하므로 이를 적절히 활용해줍니다. 문자열 * 3 숫자는 해당 문자열을 3번 반복합니다.

5. 그리고 공백과 # 문자열을 + 로 이용해 합쳐 줍니다. 코드는 정말 간결하게 끝나네요. 다음의 풀이를 참고해주세요.


풀이

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the staircase function below.
def staircase(num):
for i in range(num):
print(' '*(num-i-1) + '#'*(i+1))


if __name__ == '__main__':
n = int(input())

staircase(n)