본문 바로가기
Problem Solving/BOJ

백준 2448번 별 찍기 - 11 - 스위프트(Swift) 시간초과 해결 못함

by 어멘드 2022. 1. 24.
반응형

 시간초과ㅠㅠㅠㅠㅠㅠㅠㅠㅠ k=10일 때 넣어보니까 출력이 진짜 오래 걸리던데 문자열 출력 때문인 것 같다. 여러 방법 다해봤는데 joined() 쓰는 게 그나마 제일 빨랐다. 그래도 한참 느린가 보다.

 이 문제는 Swift로 맞은 사람 많던데 어떻게 한 건지 끝까지 못 찾아내서 결국 C++로 제출했다. Swift로 AC 받은 코드 보고 싶다. 진짜 너무 궁금해ㅠㅠ


import Foundation

var arr = [[String]]()

func fillStar(row: Int, col: Int, size: Int) {
    if size == 3 {
        arr[row][col+2] = "*"
        arr[row+1][col+1] = "*"; arr[row+1][col+3] = "*"
        for i in 0..<5 { arr[row+2][col+i] = "*" }
    } else {
        fillStar(row: row, col: col + size/2, size: size/2)
        fillStar(row: row+size/2, col: col, size: size/2)
        fillStar(row: row+size/2, col: col + size, size: size/2)
    }
}

func solution() {
    let N = Int(readLine()!)!
    arr = Array(repeating: Array(repeating: " ", count: 2*N-1), count: N)
    
    fillStar(row: 0, col: 0, size: N)
    
    arr.forEach{ print($0.joined()) }
}

solution()
반응형

댓글