백준 코딩 테스트
백준 2448번 - 별찍기(11)
코딩질문자
2021. 3. 8. 14:39
728x90
출처: 2448번: 별 찍기 - 11 (acmicpc.net)
2448번: 별 찍기 - 11
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)
www.acmicpc.net
별 찍기 - 11 성공분류
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 | 256 MB | 22460 | 8768 | 6140 | 37.230% |
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N이 주어진다. N은 항상 3×2**k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)
출력
첫째 줄부터 N번째 줄까지 별을 출력한다.
[ 문제 설명 ]
이전에 풀었던 별 찍기 10처럼 도장 찍듯이 풀려고 하고, 도장을 만드는 점화식을 구현하는 게 복잡하고 어려웠다.
해서 점화식 형태로 구현하는 것보다 직접 print문 형식으로 도장을 하나 만들어서 이전과 방법으로 풀려고 한다.
import math
triangle = [" * ", " * * ", "***** "]
def starts(move):
t = len(triangle)
for i in range(t):
triangle.append(triangle[i] + triangle[i])
triangle[i] = (" " * move + triangle[i] + " " * move)
n = int(input())
q = int(math.log(int(n / 3), 2))
for i in range(q):
starts(int(pow(2, i)))
for i in range(n):
print(triangle[i])
print(triangle)
후기
음.. 먼가 생각을 해야 하는 문제..
그리고 별 찍기 10을 풀고 오니 오히려
헤맨 문제.
728x90