코딩 테스트/Baekjoon

G5 2447. 별 찍기 - 10

  • -
728x90

  • 정답률 : 55%


def star(n): if n == 3: return ["***","* *","***"] #아닌 경우, star 세트 만들어두기 stars = star(n//3) answer = [] #윗줄 for s in stars: answer.append(s*3) #중간줄 for s in stars: answer.append(s+' '*(n//3)+s) #아랫줄 for s in stars: answer.append(s*3) return answer n = int(input()) print('\n'.join(star(n)))

3일 때는
***
* *
***
9일 때는
*********
* ** ** *
*********
***   ***
* *   * *
***   ***
*********
* ** ** *
*********
이렇게 출력한다는 것을 보고 star(3)의 모양이 반복된다는 것을 발견했다.
그리고 3줄을 한 세트로 반복하는데, 각 줄은 star(3)*(n//3)의 길이다.
윗줄(=아랫줄), 중간줄의 특징을 잘 파악하고 풀이하면 될 것 같다.
320x100

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.