아이공의 AI 공부 도전기

[Baekjoon] 2447번 별 찍기 - 10 (Python)

 

 

Python

 

 

방법 1 - 38548KB, 76ms, 173B

 

재귀를 사용한 방법

 

def c(p,l):return [''.join(x) for x in zip(p,l,p)]
def s(n):
 if n==1:return ['*']
 n//=3
 x=s(n)
 a=c(x,x)
 b=c(x,[' '*n]*n)
 return a+b+a
print('\n'.join(s(int(input()))))

 

for x in zip(p, l, p):에 대한 고찰 예시

a = ['***', '* *', '***']
b = ['!!!', '* *', '$$$']
c = ['@@@', '* *', '###']

for x in zip(a,b,c):
 print(x)
 
"""
Results : 
('***', '!!!', '@@@')
('* *', '* *', '* *')
('***', '$$$', '###')
"""

for x in zip(a,b,c):
 print(''.join(x))
 
"""
Results : 
'***!!!@@@'
'* ** ** *'
'***$$$###'
"""

 

list 덧셈은 덧셈의 연결

a = ['***', '* *', '***']
b = ['!!!', '* *', '$$$']
c = ['@@@', '* *', '###']

print(a+b+c)

# Resutls = ['***', '* *', '***', '!!!', '* *', '$$$', '@@@', '* *', '###']

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading