hugDog
Android DevLog
hugDog
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ™Œ Hello? (162)
    • ๐Ÿงฉ์•ˆ๋“œ๋กœ์ด๋“œ (12)
      • ๊ฐœ๋… ์ •๋ฆฌ (5)
      • ๋ฒ„๊ทธ ํ•ด๊ฒฐ (4)
      • ๊ธฐํƒ€ (3)
    • ๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜ (54)
      • ๊ฐœ๋… (0)
      • ๋ฐฑ์ค€ (48)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
    • ๐Ÿ“„๊ฐœ๋ฐœ ์ผ์ง€ (0)
      • FINPO (0)
    • ๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (71)
      • C++ ์ •๋ฆฌ (49)
      • C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค ์—ฐ์Šต๋ฌธ์ œ (20)
      • Kotlin (2)
    • โญProject (1)
    • ๐ŸšดTIL (13)
      • Clean Code (13)
    • ๐Ÿšฉ๊ธฐํƒ€ (9)
      • ๋ชฉํ‘œ (6)
      • ์ผ์ƒ (3)
      • ๋ฌธ์„œ (0)

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
hugDog

Android DevLog

[Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 2448๋ฒˆ: ๋ณ„ ์ฐ๊ธฐ - 11
๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

[Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 2448๋ฒˆ: ๋ณ„ ์ฐ๊ธฐ - 11

2022. 1. 2. 00:39
728x90

๋ฌธ์ œ

 

ํ’€์ด

์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ถ„ํ• !!

์œ„ ๊ทธ๋ฆผ๊ณผ ํ†ตํ•ด ๊ทœ์น™์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

N = 6 -> N = 3์ผ ๋•Œ์˜ ์‚ผ๊ฐํ˜• 3๊ฐœ๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅ

N = 12 -> N = 6์ผ ๋•Œ์˜ ์‚ผ๊ฐํ˜• 3๊ฐœ๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅ

N = 24 -> N = 6์ผ ๋•Œ์˜ ์‚ผ๊ฐํ˜• 3๊ฐœ๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅ

...

 

N= 3์ธ ๊ฒฝ์šฐ ์‚ผ๊ฐํ˜•์„ ๊ทธ๋ฆฐ๋‹ค.

์•„๋‹ ๊ฒฝ์šฐ, ์ด์ „ ์ƒํƒœ์˜ ์‚ผ๊ฐํ˜•(N//2) 3๊ฐœ๋กœ ๋ถ„ํ•  (๊ฐ๊ฐ์— ๋Œ€ํ•ด ์žฌ๊ท€ ํ˜ธ์ถœ)

 

 

1. ์šฐ์„  ์ „์ฒด ๋ฐฐ์—ด์„ ์ƒ์„ฑ

stars = [[' ']*2*n for _ in range(n)]

 

2. ๋ถ„ํ•  ์ •๋ณต์„ ์œ„ํ•ด ํ•จ์ˆ˜ ์ƒ์„ฑ ํ›„ n์ด 3์ผ ๋•Œ ์‚ผ๊ฐํ˜•์„ ๊ทธ๋ ค์ค€๋‹ค. i, j๋Š” ์ขŒํ‘œ ๊ฐ’

def recursion(i, j, size):
    if size == 3:
        stars[i][j] = '*'
        stars[i + 1][j - 1] = stars[i + 1][j + 1] = "*"
        for k in range(-2, 3):
            stars[i + 2][j - k] = "*"

 

3. ๋งŒ์•ฝ n์ด 3์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๋ถ„ํ• ํ•œ๋‹ค. 

else:
        newSize = size//2
        recursion(i, j, newSize)
        recursion(i + newSize, j - newSize, newSize)
        recursion(i + newSize, j + newSize, newSize)

 

4. ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„ ์ถœ๋ ฅ

recursion(0, n - 1, n)
for star in stars:
    print("".join(star))

 

N ์ด 6์ผ๋•Œ์˜ ์˜ˆ์‹œ

์„ธ ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ• 

 

# N : 6
# newSize = 6 // 2 = 3
recursion(0, 5, newSize)
recursion(3, 5 - 3, newSize)
recursion(3, 5 + 3, newSize)

์ฝ”๋“œ

import sys
input = sys.stdin.readline

n = int(input())

stars = [[' ']*2*n for _ in range(n)]

def recursion(i, j, size):
    if size == 3:
        stars[i][j] = '*'
        stars[i + 1][j - 1] = stars[i + 1][j + 1] = "*"
        for k in range(-2, 3):
            stars[i + 2][j - k] = "*"
    
    else:
        newSize = size//2
        recursion(i, j, newSize)
        recursion(i + newSize, j - newSize, newSize)
        recursion(i + newSize, j + newSize, newSize)

recursion(0, n - 1, n)
for star in stars:
    print("".join(star))

 

๋งˆ๋ฌด๋ฆฌ

์žฌ๊ท€๋Š” ๋„ˆ๋ฌด ์–ด๋ ต๋‹ค... ๋‚˜์ค‘์— ์žฌ๊ท€ ๋ฌธ์ œ๋งŒ ๋ชจ์•„์„œ ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค.

 

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    '๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 16946๋ฒˆ: ๋ฒฝ ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ 4
    • [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 16954๋ฒˆ: ์›€์ง์ด๋Š” ๋ฏธ๋กœ ํƒˆ์ถœ
    • [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 1043๋ฒˆ: ๊ฑฐ์ง“๋ง
    • [Python/ํŒŒ์ด์ฌ] ๋ฐฑ์ค€ 10830๋ฒˆ: ํ–‰๋ ฌ ์ œ๊ณฑ
    hugDog
    hugDog
    ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต๋ถ€ ์ค‘์ธ ํ•™์ƒ์ž…๋‹ˆ๋‹ค!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”