728x90
https://www.acmicpc.net/problem/2164
import Foundation
let N = Int(readLine()!)!
var queue = Array(1...N) // 이런 배열 형태는 처음봄.
var pointer = 0 // 포인터 만들기.
if N == 1 {print(1)} // card수가 1이면 그냥 1출력
else {
while true {
queue[pointer] = 0 // 맨 앞에 있는 카드 버리기.
queue.append(queue[pointer + 1]) // append 메서드 자체가 배열 끝에 추가하는 것이므로 카드를 맨 뒤로 보내는 것과 같다.
queue[pointer + 1] = 0 // 또 다시 카드 버리기.
if queue[queue.count - 2] == 0 {
print(queue.last!); break }
pointer += 2 // 카드는 두장씩 없어지니 2씩 넘어가야한다.
}
}
728x90
'PS' 카테고리의 다른 글
11050번 이항계수 1 / swift (0) | 2022.10.03 |
---|---|
10828번 스택 / swift (0) | 2022.10.03 |
9012번 괄호 / swift (0) | 2022.10.02 |
2609 최대공약수와 최소공배수 / swift (0) | 2022.10.02 |
1920번 수 찾기 - swift (0) | 2022.09.30 |