본문 바로가기

백준 코딩 테스트

백준 2448번 - 별찍기(11)

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문 형식으로 도장을 하나 만들어서 이전과 방법으로 풀려고 한다.

 

그림 1 - 별찍기 11 설명
그림 2 - 별찍기 11 설명


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

'백준 코딩 테스트' 카테고리의 다른 글

백준 1167번 - 트리의 지름  (0) 2021.03.09
백준 - 1517번 버블 소트  (0) 2021.03.08
백준 - 2447번 별찍기(10)  (0) 2021.03.07
백준 1992번 - 쿼드트리  (0) 2021.03.03
백준 11729번 - 하노이탑 이동순서  (0) 2021.03.03