코딩 테스트/Baekjoon

G5 2447. 별 찍기 - 10

  • -
728x90
반응형

문제 보기 :  2447번: 별 찍기 - 10


문제

  • 정답률 : 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
728x90

'코딩 테스트 > Baekjoon' 카테고리의 다른 글

G5 10026. 적록색약  (0) 2024.11.19
S2 11279. 최대 힙  (0) 2024.11.18
S2 18870. 좌표 압축  (0) 2024.11.16
S3 2193. 이친수  (0) 2024.11.15
S2 4948. 베르트랑 공준  (0) 2024.11.14
Contents

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

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