
import Foundation
//2164 카드2
let num = Int(readLine()!)!
var arr = Array(1...num)
var temp = 0
if num == 1 {print(1)}
else{
while true{
arr[temp] = 0
arr.append(arr[temp+1])
arr[temp+1] = 0
if arr[arr.count-2] == 0 {print(arr.last!); break}
temp += 2
}
}
여러 시도를 해봤지만 자꾸 시간초과가 떴었다.
분명 시간을 특별히 잡아먹는 코드가 없는데 왜 그러지 싶어서 끝내 블로그에 있는 코드를 참고하였다.
이유는 배열.remove인덱스를 하는것이 시간을 많이 잡아먹었던것
배열에 있는 인덱스를 삭제하게된다면 뒤에있는 값들이 전부 한칸씩 땡겨지게 되면서 시간을 잡아먹었다.
그래서 삭제 대신 그 자리에 0을 넣어 코드를 작성하였다.
'백준' 카테고리의 다른 글
| 백준 스위프트 1874 스택수열 (0) | 2023.01.07 |
|---|---|
| 스위프트 백준 11866 요세푸스문제 (0) | 2023.01.07 |
| 스위프트 백준11650 좌표정렬하기 (0) | 2022.12.31 |
| 스위프트 백준2231 분해합 (0) | 2022.12.31 |
| 스위프트 백준 7568 덩치 (0) | 2022.12.30 |