hoodyo   2년 전

def get_stars(n):
    matrix = []
    for i in range(3 * len(n)):
        if i // len(n) == 1:
            matrix.append(n[i % len(n)] + '' * len(n) + n[i % len(n)])
        else:
            matrix.append(n[i % len(n)] * 3)
    return matrix

star = ['***', '* *', '***']
n = int(input())
e = 0
while n != 3:
    n = int(n / 3)
    e += 1
for i in range(e):
    star = get_stars(star)
for i in star:
    print(i)

위에 보시면, 

for I in range(3 * len(n)):

으로 되어있는데, n이 27이면 정수이기 때문에

len 함수를 사용하지 못하는 거 아닌가요 ?

그리고 

matrix.append(n[i % len(n)] + '' * len(n) + n[i % len(n)])

이렇게도 구문을 사용할 수 있는건가요 ?

리스트컴프리헨션 방법인거 같지는 않은데,,,; 뭘 뜻하는 지 정확히 이해가 안되서

고수님들께 해설 좀 부탁드리고자합니다 _ _

twilight057   2년 전

안녕하세요? 

고수는 아니지만 이걸 몇시간 붙잡고 있다가 이렇게 푸는 사람도 있으려나 했는데 올려주신 답과 비슷해서 도움이 될 수도 있을 것 같아 댓글 써봐요!

저도 순간 헷갈렸는데 실제로 코드에서 입력값으로 쓰인 값은 star로 pattern을 저장하고 있는 list 입니다. 
함수에서의 변수명이랑 같아서 좀 헷갈리긴하네요.

제 답안 코드를 올려도 되는건지 알수가 없어서 올리지 못해 설명이 어렵네요 ㅠㅠ

댓글을 작성하려면 로그인해야 합니다.