일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @GeneratedValue
- @GenericGenerator
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- ApplicationEvent
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
- Callback
- case when
- CCW
- chat GPT
- CICD
- Collections
- Combination
- combinations
- Today
- Total
기록
백준_2448_별 찍기 - 11 본문
문제
풀이
" "를 "/"를 바꾸어 표현하면 아래와 같으며, 다음과 같은 패턴을 찾을 수 있다.
04: *(01)사이에 5개의 /가 들어가 있다. ****(03)의 길이는 5이다.
05: */*(02)사이에 3개의 /가 들어가 있다. */*(02)의 길이는 3이다.
06: ****(03)사이에 1개의 /가 들어가 있다. *(01)의 길이는 1이다.
07: *(01)사이에 11개의 /가 들어가 있다. *****/*****(06)의 길이는 11이다.
08: */* (02)사이에 9개의 /가 들어가 있다. */*///*/* (05)의 길이는 9이다.
09: ***** (03)사이에 7개의 /가 들어가 있다. */////* (04)의 길이는 7이다.
10: */////* (04)사이에 5개의 /가 들어가 있다. ****(03)의 길이는 5이다.
11: */*///*/* (05)사이에 3개의 /가 들어가 있다. */*(02)의 길이는 3이다.
12: *****/*****(06)사이에 1개의 /가 들어가 있다. *(01)의 길이는 1이다.
13: *(01)사이에 23개의 /가 들어가 있다. *****/*****/*****/*****(12)의 길이는 23이다.
14: */*(02)사이에 21개의 /가 들어가 있다. */*///*/*///*/*///*/*(11)의 길이는 21이다.
15: *****(03)사이에 19개의 /가 들어가 있다. */////*/////*/////*(10)의 길이는 19이다.
16: */////*(04)사이에 17개의 /가 들어가 있다. *****///////*****(09)의 길이는 17이다.
17: */*///*/*(05)사이에 15개의 /가 들어가 있다. */*/////////*/*(08)의 길이는 15이다.
18: *****/*****(06)사이에 13개의 /가 들어가 있다. *///////////*(07)의 길이는 13이다.
19: *///////////*(07)사이에 11개의 /가 들어가 있다. *****/*****(06)의 길이는 11이다.
20: */*/////////*/*(08)사이에 9개의 /가 들어가 있다. */*///*/* (05)의 길이는 9이다.
21: *****///////*****(09)사이에 7개의 /가 들어가 있다. */////* (04)의 길이는 7이다.
22: */////*/////*/////*(10)사이에 5개의 /가 들어가 있다. ****(03)의 길이는 5이다.
23: */*///*/*///*/*///*/*(11)사이에 3개의 /가 들어가 있다. */*(02)의 길이는 3이다.
24: *****/*****/*****/*****(12)사이에 1개의 /가 들어가 있다. *(01)의 길이는 1이다.
01: ///////////////////////*///////////////////////
02: //////////////////////*/*//////////////////////
03: /////////////////////*****/////////////////////
04: ////////////////////*/////*////////////////////
05: ///////////////////*/*///*/*///////////////////
06: //////////////////*****/*****//////////////////
07: /////////////////*///////////*/////////////////
08: ////////////////*/*/////////*/*////////////////
09: ///////////////*****///////*****///////////////
10: //////////////*/////*/////*/////*//////////////
11: /////////////*/*///*/*///*/*///*/*/////////////
12: ////////////*****/*****/*****/*****////////////
13: ///////////*///////////////////////*///////////
14: //////////*/*/////////////////////*/*//////////
15: /////////*****///////////////////*****/////////
16: ////////*/////*/////////////////*/////*////////
17: ///////*/*///*/*///////////////*/*///*/*///////
18: //////*****/*****/////////////*****/*****//////
19: /////*///////////*///////////*///////////*/////
20: ////*/*/////////*/*/////////*/*/////////*/*////
21: ///*****///////*****///////*****///////*****///
22: //*/////*/////*/////*/////*/////*/////*/////*//
23: /*/*///*/*///*/*///*/*///*/*///*/*///*/*///*/*/
24: *****/*****/*****/*****/*****/*****/*****/*****
코드
height = int(input())
width = int((height/3)*5 + (height/3-1))
board = [[" " for i in range(width)] for i in range(height)]
patterns = ["*", "* *", "*****"]
def drawCenter(board, pattern, r) :
edge = (width - len(pattern)) / 2
for j in range(len(pattern)):
try :
board[r][int(edge) + j] = pattern[j]
except :
return 0
# draw init pattern
size = len(patterns)
for i in range(size) :
drawCenter(board, patterns[i], i)
while True:
size = len(patterns)
for i in range(size) :
pattern = "{0:s}{1:s}{0:s}".format(patterns[i], " "*len(patterns[size-i-1]))
patterns.append(pattern)
ans = drawCenter(board, pattern, i+size)
if ans==0 : break
# print board
for i in range(height) :
print("".join(board[i]))
'코딩테스트 > python' 카테고리의 다른 글
백준_9465_스티커 (0) | 2021.01.02 |
---|---|
백준_12852_1로 만들기 2 (0) | 2020.12.31 |
백준_17070_파이프 옮기기 1 (0) | 2020.12.30 |
백준_1085_직사각형에서 탈출 (0) | 2020.12.28 |
백준_1259_팰린드롬수 (0) | 2020.12.28 |