ps/boj

10991번 Python

choi-dev 2024. 4. 23. 22:15

https://www.acmicpc.net/problem/10991

 

10991번: 별 찍기 - 16

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

규칙되는 부분을 얼추 찾은 것 같았는데 출력 형식이 잘못되었다고 나올까봐 배제하고 다른 풀이를 생각했는데 그것이 올바른 길이었다.

 

    * 
   * * 
  * * * 
 * * * * 
* * * * *

유심히 보았던 것은 왼쪽의 공백이었다. 4 > 3 > 2 > 1의 순서로 일정하게 줄어드는 것을 확인했다. 그렇다는 건 복잡하게 생각할 필요성이 없다고 판단했다. 그 다음으로 생각한 것이 *의 형태였다. 기존에는 *만 생각해보았다면 이번엔 '* '의 형태를 도입해보기로 생각까지는 했었다.

 

하지만 백준에서 보았을 때, 오른쪽의 공백 형태가 보이지 않길래 이렇게 하면 출력 형식이 오류가 날 거 같다고 판단해 여러 풀이를 생각했다. 공백까지 포함해서 4 > 5 > 6 > 7 순서로 흘러가길래 range를 N부터 2 * N까지 해볼까? 도 생각했고 여러 풀이를 생각했는데 도저히 생각이 안나서 푸신 분의 풀이를 보았다. 그런데 확인해보니 내가 처음에 생각했던 부분이었다.

 

N = int(input())

for i in range(1, N + 1):
    print(' ' * (N - i) + '* ' * i)

그래서 바로 코드를 작성했고 제출해보니 정답이었다.