[백준] 별 찍기-11 (2448)
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/43105
문제
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)
예제 입력
24
예제 출력
*
* *
*****
* *
* * * *
***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * * * * * *
* * * * * * * * * * * * * * * *
***** ***** ***** ***** ***** ***** ***** *****
분류
-
알고리즘 분류
분할 정복, 재귀 -
난이도
골드 4 -
사용 언어
python 3
풀이
해당 모형은 위의 그림처럼 삼각형을 기준으로 위 한개, 아래 두개가 합쳐져 있는 모습이다.
주의할 점은 위쪽 삼각형의 경우또한 양쪽에 공백을 두어 아래의 길이와 맞춰야 한다는 것이다.
코드
def appendStar(n):
if(n==3):
return [" * "," * * ","***** "] # 1
star = appendStar(n//2)
result = []
for s in star:
result.append(' '*(n//2) + s+ ' '*(n//2)) # 2
for s in star:
result.append(s*2) # 3
return result
result = appendStar(int(input()))
for i in result:
print(i)
- 입력의 최솟값일 경우 나오는 모양이다.
- 위 부분의 양쪽 공백을 해당 깊이만큼 설정
- 아래 부분은 같은 모양이 두번 반복되므로 각 줄에 대해서 문자열 연산
Author And Source
이 문제에 관하여([백준] 별 찍기-11 (2448)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dlwpdlf147/백준-별-찍기-11-2448저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)