Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- String
- 인프런
- C
- 따라하면서 배우는 C언어
- Algorithm
- C언어
- Algospot
- Python
- php
- 따배씨
- greedy
- graph
- web
- Math
- udemy
- programmers
- 정수론
- BFS
- 생활코딩
- 따라하며 배우는 C언어
- server
- dfs
- sorting
- DP
- 종만북
- BOJ
- JavaScript
- BASIC
- 백준
- Cleancode
Archives
- Today
- Total
몽상실현개발주의
[BOJ] 2448 / 별 찍기 - 11 / Python 파이썬 본문
[BOJ] 2448 / 별 찍기 - 11 / Python 파이썬
https://www.acmicpc.net/problem/2448
2448번: 별 찍기 - 11
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)
www.acmicpc.net
풀이
[BOJ] 2447 / 별 찍기 와 같은 프랙탈 문제이다.
기본 모양을 두고, 그 모양을 이용하여 다음 모양을 만들어 가는 것을 진행하였다.
- 주어진 모양의 삼각형의 아래에 왼쪽과 오른쪽 두쌍의 삼각형을 만들고
- 전체 모양을 만들기 위해 주어진 삼각형에 공간을 삽입하여 구조를 만들어 주었다.
N = int(input())
tri = [" * ", " * * ", "*****"]
N = N//3
def makeTri(tri):
L = len(tri)
for i in range(L):
# 주어진 모양을 복사하여 아래쪽에 두개의 모양 더 만들기
tri.append(tri[i] + " " + tri[i])
# 주어진 모양의 여백 만들기
tri[i] = " "*L + tri[i] + " "*L
return tri
cnt = 0
while N > 1:
N //= 2
cnt += 1
for i in range(cnt):
makeTri(tri)
for t in tri:
print(t)
'Algorithm PS > BOJ' 카테고리의 다른 글
[BOJ] 2875 / 대회 or 인턴 / Python 파이썬 (0) | 2021.06.30 |
---|---|
[BOJ] 11047 / 동전 0 / Python 파이썬 (0) | 2021.06.28 |
[BOJ] 2447 / 별 찍기 - 10 / Python 파이썬 (0) | 2021.06.28 |
[BOJ] 11729 / 하노이 탑 이동 순서 / Python 파이썬 (0) | 2021.06.23 |
[BOJ] 1780 / 종이의 개수 / Python 파이썬 (0) | 2021.06.22 |
Comments