알고리즘/백준

[BOJ#10994] 별 찍기 - 19

Jinoo.keem 2024. 4. 16. 16:44
728x90

https://www.acmicpc.net/problem/10994

 

10994번: 별 찍기 - 19

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

1 초 256 MB 7356 4864 3876 68.096%

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 차례대로 별을 출력한다.


제출 코드

def star(n, r, c):
    leng = (4*n)-3
    
    if leng == 1:
        arr[r][c] = "*" # 중앙
        return

    for i in range(leng):
        arr[r][c+i] = "*"
        arr[r+i][c] = "*"
        arr[r+(leng-1)][c+i] = "*"
        arr[r+i][c+(leng-1)] = "*"
    star(n-1, r+2, c+2)
        
        
N = int(input())
leng = (4*N)-3
arr = [[' ']*leng for _ in range(leng)]
star(N, 0, 0)
for line in arr:
    print(*line, sep='')

 

1. 별을 찍을 곳을 2차원 배열로 미리 만들어둔다.

2. 별을 찍는 곳의 규칙을 찾아준다. 각 변의 길이는 (N*4) -3 의 규칙을 갖는다.

3. 네모 사이의 차이가 2라서 2만큼 더해주면서 별을 찍어줬다.

 

'알고리즘 > 백준' 카테고리의 다른 글

[BOJ#9625] BABBA  (0) 2024.04.18
[BOJ#6198] 옥상 정원 꾸미기  (1) 2024.04.17
[BOJ#30892] 상어 키우기  (0) 2024.04.16
[BOJ#25418] 정수 a를 k로 만들기  (0) 2024.04.16
[BOJ#4963] 섬의 개수  (0) 2024.04.13