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)