# 02/Swift - CTP
[Swift] 백준! 2447번 - 별 찍기 - 10
장딴지연
2023. 1. 16. 18:50
반응형
https://www.acmicpc.net/problem/2447
2447번: 별 찍기 - 10
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이
www.acmicpc.net
import Foundation
func getLine(_ i:Int, _ n:Int, _ s:String) -> String {
var s = s
if (n == 3 && (i%n == 0 || i%n == 1)) || (n > 3 && (n/3 >= i%n || n*2/3 < i%n)) {
s = String(repeating: s, count: 3)
} else {
s = String(repeating: s, count: 1)+String(repeating: " ", count: s.count)+String(repeating: s, count: 1)
}
return s
}
let n = Int(readLine()!)!
for i in 1...n {
var v = 1
var line = "*"
while v != n {
v *= 3
line = getLine(i, v, line)
}
print(line)
}
반응형