반응형 시간초과9 백준 1005번 ACM Craft - 스위프트(Swift) 시간초과 해결 못함 단순한 위상 정렬 문제였는데 TLEㅠㅠ 입력이 느려서 그런 것 같다. 검색해보니 이 문제를 swift로 푼 사람들 중에 readLine() 대신 FileIO를 사용해서 AC를 받았다는 글이 몇 개 있었다. 결국 또 C++로 다시 제출했다. 아래는 각각 시간초과 받은 Swift코드와 같은 로직인데 AC 받은 C++ 코드. import Foundation var N = 0, K = 0 var indegree = [Int]() var buildCost = [Int]() var totalCost = [Int]() var edges = [[Int]]() struct Queue { var queue = [Int]() var front = 0 var isEmpty: Bool { return front >= queue.. 2022. 1. 27. 백준 2448번 별 찍기 - 11 - 스위프트(Swift) 시간초과 해결 못함 시간초과ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 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.. 2022. 1. 24. 백준 7511번 소셜 네트워킹 어플리케이션 - 스위프트(Swift) 시간초과 해결 오랜만에 원인모를 TLE가 났다. 심지어 이번에는 100%에서 시간 초과가 났다...! 채점 현황을 보니까 Swift로 맞은 분이 딱 한 분 있었다. 그럼 또 내 코드 문제란 건데..ㅠㅠ 결론은 삼항 연산자를 if-else문으로 고쳐서 AC를 받았다. 여러 가지 실험을 해봤는데 삼항 연산자를 쓰는 것보다 if-else로 하는 것이 아주 조금 더 빨랐다. 이 미세한 차이로 TLE가 AC로 바뀌었다...... PS에서는 삼항 연산자도 맘대로 못쓰다니 아래는 실험해본 코드 import Foundation func check(_ n: Int) -> Bool { return n % 2 == 0 } // 삼항연산자 let start = CFAbsoluteTimeGetCurrent() var resultString .. 2022. 1. 24. 백준 9019번 DSLR - 스위프트(Swift) 시간초과 해결 BFS를 돌면서 해당 노드까지 오게 된 경로를 기록해야 하는데, 바로 출력 가능하도록 이전 노드까지 오게 된 경로 문자열에 + 연산자를 사용해서 기록을 하니 시간 초과가 났다. 문자열에 +하는 연산은 역시 코스트가 엄청 큰가 보다. n을 2배로 만드는 D 연산이 있기 때문에 최대 연산 횟수가 logN 언저리일 것이므로 Int의 각 자릿수에 한 글자가 대응되도록 저장이 가능했다. "D", "S", "L", "R"을 각각 1, 2, 3, 4로 대응시켜 122314 = "DSSLDR"처럼 읽을 수 있도록 기록했더니 통과되었다. 마지막에 출력할 때 숫자 → 문자열로 변환하는 작업을 한번 거쳐줘야 한다. import Foundation struct Queue { var queue = [Int]() var fron.. 2022. 1. 21. 백준 1572번 중앙값 - 스위프트(Swift) 시간초과 해결 스위프트로 문제 풀면 절반은 TLE를 맞는.. 오늘 벌써 두 번째 TLE인데 이번엔 좀 신기한 상황이었다. 이 문제 바로 전에 1615번 문제에서 이유를 알 수 없는 TLE를 맞았는데, Swift로 맞은 사람이 없길래 포기하고 바로 C++로 풀었는데 이 문제는 Swift로 맞은 사람이 있었다...! 결국 언어 한계가 아니라 내 코드 문제라는 건데.. 코드가 길지도 않은데 대체 어디서 시간을 잡아먹는 건지 알 수가 없었다. 예전에 C++로 풀이할 때, 메모리 접근 시간 때문에 TLE를 맞은 적이 있었다. 로직은 그대로 두고 2차원 배열 행과 열만 바꿔서 저장했더니 통과가 됐었다. 그래서 설마 이것도 메모리 접근에서 시간을 잡아먹는 건가 싶어 클래스 안에 타고 들어가는 시간 줄이려고 클래스로 따로 뺐던 펜윅.. 2022. 1. 12. 이전 1 2 다음 반응형