https://www.acmicpc.net/problem/2447
2447๋ฒ: ๋ณ ์ฐ๊ธฐ - 10
์ฌ๊ท์ ์ธ ํจํด์ผ๋ก ๋ณ์ ์ฐ์ด ๋ณด์. N์ด 3์ ๊ฑฐ๋ญ์ ๊ณฑ(3, 9, 27, ...)์ด๋ผ๊ณ ํ ๋, ํฌ๊ธฐ N์ ํจํด์ N×N ์ ์ฌ๊ฐํ ๋ชจ์์ด๋ค. ํฌ๊ธฐ 3์ ํจํด์ ๊ฐ์ด๋ฐ์ ๊ณต๋ฐฑ์ด ์๊ณ , ๊ฐ์ด๋ฐ๋ฅผ ์ ์ธํ ๋ชจ๋ ์นธ์ ๋ณ์ด
www.acmicpc.net
def star(s):
list = []
num = len(s)
for i in range(3 * num):
if i // num == 1:
list.append(s[i % num] + ' ' * num + s[i % num])
else:
list.append(s[i % num] * 3)
return list
n = int(input())
s = ['***', '* *', '***']
k = 0
while n != 3:
n //= 3
k += 1
for i in range(k):
s = star(s)
for i in s:
print(i)
์ดํดํ๋๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ธ๋ ๋ฌธ์ ..!
3์ ํจํด์ผ ๊ฒฝ์ฐ
***
* *
***
--> ๊ฑฐ๋ญ์ ๊ณฑํ ์๋ก ๊ฐ์ด๋ฐ๋ฅผ ๋น์ฐ๊ณ n/3์ ํจํด์ผ๋ก ๋๋ฌ์ธ์
๋ฐ๋ผ์ ๋จผ์ n์ด 3์ด ๋ ๋๊น์ง ๋ช ๋ฒ ๋๋๋์ง ๊ณ์ฐํ์ฌ ๊ทธ ํ์๋งํผ ๋ณ ๋ง๋๋ ํจ์๋ฅผ ์คํํ๋ค
์ฐ์ ์ฒ์์ n=3์ผ ๋์ ๋ฐฐ์ด['***', '* *', '***']์ ๋ง๋ค์ด๋๊ณ
ํจ์๋ฅผ ์คํํ ๋๋ง๋ค 3์ ํจํด -> 9์ ํจํด -> 27์ ํจํด -> ~~ ์ด ๋ง๋ค์ด์ง๋ค
ํจ์(star) ์์ for๋ฌธ์์ i//num==1์ธ ๊ฒฝ์ฐ๋ ๊ฐ์ด๋ฐ๋ฅผ ๋น์ฐ๋ ๊ฒฝ์ฐ!
'๐ค > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2798: ๋ธ๋์ญ (Python) (0) | 2021.09.08 |
---|---|
๋ฐฑ์ค 11729: ํ๋ ธ์ด ํ ์ด๋ ์์ (Python) (0) | 2021.09.08 |
๋ฐฑ์ค 10870: ํผ๋ณด๋์น ์ 5 (Python) (0) | 2021.09.06 |
๋ฐฑ์ค 10872: ํฉํ ๋ฆฌ์ผ (Python) (0) | 2021.09.04 |
๋ฐฑ์ค 1002: ํฐ๋ (Python) (0) | 2021.09.02 |