숫자 n이 주어졌을 때, n개의 단계를 가진 계단 모양 문자열을 만드는 문제입니다. 이때 각 줄은 줄바꿈(newline) 문자로 구분됩니다.
예를 들어 입력값이 n = 5라면 출력 결과는 다음과 같습니다.
* ** *** **** *****
해결 방법
이 문제는 다음 단계를 따라 해결할 수 있습니다.
- 빈 문자열 s를 초기화합니다.
- i가 0부터 n-1까지 반복하면서:
- s에 공백 (n-i-1)개와 별표 '*' (i+1)개를 이어 붙입니다.
- 마지막 줄(i = n-1)을 제외한 각 줄 뒤에는 줄바꿈 문자 '\n'을 추가합니다.
- 완성된 문자열 s를 반환합니다.
그럼 실제 구현 예시를 통해 자세히 살펴보겠습니다.
예제 코드
class Solution: def solve(self, n): s = "" for i in range(n): s += " "*(n-i-1) + "*"*(i+1) if i < n-1: s += "\n" return s ob = Solution() print(ob.solve(5))
입력
5
출력
* ** *** **** *****
위 코드에서 핵심 로직은 각 행마다 왼쪽에 채워야 할 공백 개수와 오른쪽에 찍어야 할 별표 개수를 규칙적으로 계산하는 것입니다. i번째 줄에서는 공백이 (n-i-1)개, 별표가 (i+1)개 필요하므로 파이썬의 문자열 곱셈 연산을 활용하면 간단하게 구현할 수 있습니다. 이러한 패턴 출력 문제는 반복문과 문자열 조작 능력을 기르기 좋은 대표적인 연습 문제입니다.